我有一个int
指针(即int *count
),我想使用++
运算符递增指向的整数。我想我会打电话给:
*count++;
但是,我收到了一个构建警告"expression result used"。我可以打电话
*count += 1;
但是,我也想知道如何使用++
运算符。有任何想法吗?
我有一个int
指针(即int *count
),我想使用++
运算符递增指向的整数。我想我会打电话给:
*count++;
但是,我收到了一个构建警告"expression result used"。我可以打电话
*count += 1;
但是,我也想知道如何使用++
运算符。有任何想法吗?
++ 与 * 具有相同的优先级,并且关联性是从右到左的。见这里。它变得更加复杂,因为即使 ++ 将与指针相关联,增量也会在语句评估之后应用。
事情发生的顺序是:
您收到警告是因为您从未在步骤 2 中实际使用取消引用的值。就像@Sidarth 所说,您需要括号来强制评估顺序:
(*ptr)++
尝试使用(*count)++
. *count++
可能会将指针递增到下一个位置,然后使用间接(这是无意的)。