【发布时间】:2019-09-24 23:14:17
【问题描述】:
*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
}
有人能解释一下为什么会这样吗?
提前致谢
【问题讨论】:
-
*p++是一个后修复增量。虽然p增加了*p反映了p在增加之前的内容。 Built-in postfix operators -
非常感谢我知道了!