#include<stdio.h>
int main()
{
int a=1;
printf("%d",(++a)++);
return 0;
}
此代码提供错误
错误:增量中的左值无效
++ a不会返回++(post fix)运算符要求处理的l值吗? 如果是的话怎么样?
答案 0 :(得分:1)
不,递增和递减运算符(与除一元*
和[]
之外的所有运算符一样)返回非左值。
答案 1 :(得分:0)
编辑:我的回答不正确。正如所指出的,增量和减量运算符不会返回左值。
这里的问题是你在滥用sequence points。当您尝试使用post和prefix increment运算符在一个语句中修改变量的值时,最终会创建一个情况,其中每个序列点的值依赖于另一个。所以表达式无效。