*号和++属于同一优先级,且方向都是从右向左的,*p++和*(p++)作用相同。
如下例子:
char a[]="asdasf";
char *p=a;
printf("%d\n",p);//打印一地址值x
*p++;
printf("%d\n",p);//打印一地址值x+1
printf("%c\n",*p);//打印s
printf("%s\n",a);//打印asdasf这里的++作用于p上,先把p++,导致p向后移动了一位,所以*p打印值为s,且*p++执行之后数组a的内容没有改变。
-------------------------------------------------
char a[]="asdasf";
char *p=a;
printf("%d\n",p);//打印一地址值x
(*p)++;
printf("%d\n",p);//打印一地址值x+1
printf("%c\n",*p);//打印b
printf("%s\n",a);//打印bsdasf这里++作用于*p上,所以*p++执行之后数组a的值改变了。
本文通过两个示例详细解析了C语言中*号与++运算符的使用及优先级,展示了它们如何影响指针变量的行为,并区分了*p++与(*p)++的不同效果。

3490

被折叠的 条评论
为什么被折叠?



