++(前缀)是否返回左值

时间:2014-06-12 18:00:25

标签: prefix

#include<stdio.h>
int main()
{
 int a=1;
 printf("%d",(++a)++); 
 return 0;
}

此代码提供错误

错误:增量中的左值无效

++ a不会返回++(post fix)运算符要求处理的l值吗? 如果是的话怎么样?

2 个答案:

答案 0 :(得分:1)

不,递增和递减运算符(与除一元*[]之外的所有运算符一样)返回非左值。

答案 1 :(得分:0)

编辑:我的回答不正确。正如所指出的,增量和减量运算符不会返回左值。

这里的问题是你在滥用sequence points。当您尝试使用post和prefix increment运算符在一个语句中修改变量的值时,最终会创建一个情况,其中每个序列点的值依赖于另一个。所以表达式无效。