指针指向的int的增量值

时间:2010-09-07 04:16:16

标签: c pointers increment

我有一个int指针(int * count)如果我想增加使用++指向的整数我以为我会调用

*count++;

但是,我收到一个构建警告“表达结果未使用”。我可以打电话

*count += 1;

但是,我想知道如何使用++。有什么想法吗?

2 个答案:

答案 0 :(得分:84)

++与*具有相同的优先级,而关联性是从右到左。请参阅here.它变得更加复杂,因为即使++将与指针相关联,也会在语句评估之后应用增量。

事情的顺序是:

  1. 后增量,记住后增量指针地址值作为临时增量
  2. 取消引用非递增指针地址
  3. 将递增的指针地址应用于count,count now指向其类型实体的下一个可能的内存地址。
  4. 您收到警告是因为您从未在步骤2中实际使用过去引用的值。就像@Sidarth所说,您需要使用括号来强制执行评估顺序:

     (*ptr)++
    

答案 1 :(得分:14)

尝试使用(*count)++*count++可能会将指针递增到下一个位置,然后使用间接(这是无意的)。