3 回答
TA贡献1803条经验 获得超3个赞
检查了程序,结果是,
p++; // use it then move to next int position
++p; // move to next int and then use it
++*p; // increments the value by 1 then use it
++(*p); // increments the value by 1 then use it
++*(p); // increments the value by 1 then use it
*p++; // use the value of p then moves to next position
(*p)++; // use the value of p then increment the value
*(p)++; // use the value of p then moves to next position
*++p; // moves to the next int location then use that value
*(++p); // moves to next location then use that value
TA贡献1827条经验 获得超7个赞
关于“如何增加指针地址和指针的值?” 我认为这++(*p++);实际上是定义明确的,并且可以满足您的要求,例如:
#include <stdio.h>
int main() {
int a = 100;
int *p = &a;
printf("%p\n",(void*)p);
++(*p++);
printf("%p\n",(void*)p);
printf("%d\n",a);
return 0;
}
它不是在序列点之前两次修改同一件事。我认为对于大多数用途而言,这不是一个好风格-对我来说有点神秘。
- 3 回答
- 0 关注
- 696 浏览
添加回答
举报