指针在c语言中的前后增量?

时间:2017-08-19 19:06:15

标签: c pointers

所以,我还是一名学习编程的学生。在我学习的过程中,我遇到了一个有前后增量的指针程序。当我执行程序时,我有点困惑。

代码

#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。 详细的答案将不胜感激。 谢谢。

0 个答案:

没有答案