我有一个int
指针(即int *count
),我想通过使用++
运算符来增加所指向的整数。我以为我会打电话给:
*count++;
但是,我得到了一个构建警告“表达式结果未使用”。我可以打电话
*count += 1;
但是,我也想知道如何使用++
运算符。有任何想法吗?
Answers:
++的优先级与*相同,并且关联性是从右到左。看这里 它变得更加复杂,因为即使++将与指针关联,增量也会在语句的求值后应用。
发生的顺序是:
之所以收到警告,是因为您实际上从未在第2步中实际使用过取消引用的值。就像@Sidarth所说的那样,您需要括号来强制求值顺序:
(*ptr)++
尝试使用(*count)++
。*count++
可能是将指针递增到下一个位置,然后使用间接寻址(这是无意的)。
++*ptr;
因为优先顺序是明确的,并且如果不使用结果,则无需区分预增量和后增量。