printf对*p++的处理与p的处理不同。
- 论坛
- printf对*p++的处理与p的处理不同。
25 浏览
printf对*p++的处理与p的处理不同。
这个问题已经有了答案:
一般情况下,*p++ 会将指针加 1 然后取值。
但是 printf 只是先取值后指针加 1,因此输出的值已经增加了但是指针并没有。
#include 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 }
请问有人能解释一下这是为什么吗?
谢谢!
admin 更改状态以发布 2023年5月20日