指针指向int的增量值
我有一个int指针(int * count),如果我想增加指向使用++的整数,我想我会打电话
*count++;
但是,我正在构build警告“expression式结果未使用”。 我可以打电话
*count += 1;
但是,我想知道如何使用++。 有任何想法吗?
++与*具有相同的优先级,关联性是从右到左 。 看到这里。 它变得更加复杂,因为即使++将与指针相关联,在语句评估之后也会应用增量。
事情发生的顺序是:
- 递增后,请记住递增后的指针地址值作为临时值
- 解引用非递增的指针地址
- 将递增的指针地址应用于计数,现在指向下一个可能的内存地址。
你会得到警告,因为你从来没有在第二步使用解除引用的值。像@Sidarth说的,你需要括号来强制执行评估顺序:
(*ptr)++
尝试使用(*count)++
。 *count++
可能会增加指向下一个位置的指针,然后使用间接(这是无意的)。