所以,我还是一名学习编程的学生。在我学习的过程中,我遇到了一个有前后增量的指针程序。当我执行程序时,我有点困惑。
代码
#include<stdio.h>
main()
{
int a=20;
int *p;
p =&a;
printf("%d\n %d\n %u\n",a,*p,p);
*p++;
printf("%d\n %d\n %u\n",a,*p,p);
p =&a;
++*p;
printf("%d\n %d\n %u\n",a,*p,p);
}
输出
20
20
146459356
20
146459360 /* this output */
146459360
21
21
146459356 /* and this */
那么,在帖子增量后 * p 如何显示垃圾值,为什么 p 在预增量后显示 a 的地址?或编译器是否有任何错误?我使用的是Ubuntu 16.04。 详细的答案将不胜感激。 谢谢。