小编Moh*_*ibi的帖子

printf对* p ++的处理不同于对p的处理

* p ++通常将1加到指针,然后再引用。但是printf只是在取消引用后才使用该值,而指针先增加后又取消引用。

#include<stdio.h>

int main()
{
    int a[] = { 10,20,30 };
    int *p = a;

    printf("%d\n", *p++);//this makes p point at 20 but prints 10
    printf("%d\n", *p);//prints 20
    printf("%d\n", a[0]);//prints 10

}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会这样吗?

提前致谢

c c++ printf pointers

-2
推荐指数
1
解决办法
83
查看次数

标签 统计

c ×1

c++ ×1

pointers ×1

printf ×1