关于C++的问题 ++x=++y为什么是对的?

x++=y++是错的,因为“=”左边不能是表达式,既然x++是表达式,那++x也应该是表达式,为什么++x=++y就是对的呢?

第1个回答  2010-12-25
首先,++是单目运算符,优先级是高于=的,所以是先执行++。
第二,x++返回值是(x+1),是表达式而非变量
第三,++x的返回值是x,是变量
那么第一个x++=y++,可以理解为(x+1)=(y+1);x=x+1;y=y+1
第二个++x=++y,理解为x=x+1;y=y+1;x=y;
第三个++x=y,理解为x=x+1;x=y,结果自然是x=10,y=10;
第2个回答  2010-12-25
我们不妨简单点来看这个问题,将你的问题转化为:
x++ = 0;
++x = 0;

你看,先把0赋给x,然后自增,很显然右值无法自增,而先让x自增,再把0赋值给x,则可以。

希望对你有帮助。本回答被提问者采纳
第3个回答  2010-12-25
前加加(++c)可以做左值
后加加(c++)不能做左值
这是规定
第4个回答  2010-12-25
++X是先执行++
执行后X就是变量了
相似回答