void f(int *p)
{
*p = 5;
}
int main(void)
{
int a, *p;
a = 10;
p = &a;
f(p);
printf(“%d”, (*p)++);
return 0;
}
首先说一下代码,你代码有问题,双引号用了中文的
你没有了解a++和++a的区别, a++代表先运行再加一,++a先加一在运行
所以你的程序运行后直接结束了打印不了加一的数,如果你想让他是6,就这样写 ++(*p)
代码如下:
#include <stdio.h>
void f(int *p)
{
*p = 5;
}
int main()
{
int a, *p;
a = 10;
p = &a;
f(p);
printf("%d", ++(*p));
return 0;
}
(p)++是先用p进行表达式计算,然后才进行加1,所以输出5以后,*p的值才变为6
这就是(*p)++和++(*p)的最大区别