c语言中,*(++p)++的含义

2022-04-16 社会 23阅读

这个涉及到运算符的优先级问题,在这个表达式中,优先级顺序为:()>* 和++,而*和++是同优先级的,同优先级时,看结合性,而*和++是自右向左的结合性的,所以,

(++p)的结果是右值,而后缀++的操作数需要是左值,但是没有左值啊,*(++p)++;编译的时候会提示“左值需要增量操作数”的错误提醒,所以这条表达式是有问题的。

下面是示例程序:

#include 
int main()
{
int a[4]={0,1,2,3};
int *p=a;
int x=0;
x=*(++p)++;
printf("(*(++p)++) = %d\n", x);
return 0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com