c语言中*p++ 、*(++p) 、(*p)++的作用分别是什么

2024-12-29 21:36:28
推荐回答(3个)
回答1:

*p++ 先取到指针p指向的值,即*p,然后再给指针p加1,即让p指向下一个位置
*(++p) 先给指针p加1,即让p指向下一个位置,然后取出p此时所指位置的值
(*p)++先取出p当前所指的值,然后给这个值加1,指针所指位置不变

回答2:

我用一个例题来说明吧
#include

int main()
{
int a[10] = {1, 2, 3, 4, 5, 6,7, 8, 9, 10};
int *p = a;
printf("%d\n",*p++);//先输出P对应的值,然后自加
printf("%d\n",*(++p));//先自加,然后输出p指向的值
printf("%d\n",(*p)++);//和*p++相同,没有区别
return 0;
}
结果是
1
3
3

回答3:

*p++即*(p++)即*p,*++p即*(p+1),(*p)++即(*p)+1,