我有一个 int
指针(即,int *count
),我想通过使用 ++
运算符来增加指向的整数。我认为我可以调用:
*count++;
但是,我得到了一个构建警告 "expression result unused"。 我可以:调用
*count += 1;
但是,我想知道如何使用++
运算符。有什么想法吗?
我有一个 int
指针(即,int *count
),我想通过使用 ++
运算符来增加指向的整数。我认为我可以调用:
*count++;
但是,我得到了一个构建警告 "expression result unused"。 我可以:调用
*count += 1;
但是,我想知道如何使用++
运算符。有什么想法吗?
++ 的优先级与 * 相同,结合性是“从右到左”。请参见这里。 尽管 ++ 与指针相关联,但增量应用于语句评估之后,这使得情况更加复杂。
事情发生的顺序是:
您会收到警告,因为您实际上从未使用步骤2中的解除引用值。就像@Sidarth所说,您需要使用括号来强制执行评估顺序:
(*ptr)++
尝试使用(*count)++
。*count++
可能会将指针增加到下一个位置,然后再使用间接引用(这是无意的)。
++*ptr;
,因为优先级是明确的,如果结果不被使用,则没有必要区分前增量和后增量。 - RBerteig++*ptr
比++(*ptr)
更易读,那么我希望在你的下一个代码审查中被打回来。 - Martin York