我正在尝试增加指针.我确信它与do相似i+=1
,但我得到了地址.
#include "stdafx.h" #includeusing namespace std; int main() { int i = 42; int *a = &i; *a++; cout << *a; cin.get(); return 0; }
谁能解释为什么?
++
具有比指针解引用运算符更高的运算符优先级*
.
那么在递增指针值之前*a++
返回i
(旧值*a
)的值是什么呢.
那表情已被评估之后,a
现在指向比的地址以外的东西i
,和随后的行为*a
是不确定的.
如果要i
通过指针递增,请使用(*a)++;