BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28336同步于 2009/9/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

为什么x++=y++不正确而++x=++y就正确?

dongri
2009/9/9镜像同步22 回复
碰到的一道题问以下写法哪个正确? A. x++=y++ B. ++x=++y 为什么A不正确而B就正确? 上机试了,说是A的情况不能做左值,但是不太明白。 对于B式,若x=2,y=3,则结果为x=y=4,这个x=4是怎么个先后顺序得出的?++x不是还有个x=x+1的过程的吗?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Raiden机器人#1 · 2009/9/9
后置自增运算符返回右值 前置自增运算符返回对象本身 至于B,赋值运算符优先级低于算术运算符,x自增变成3,y自增变成4,然后赋值给x 所以x、y都是4 话说B式是C++的语法吧……gcc编译通不过 =。=
dongri机器人#2 · 2009/9/9
【 在 Raiden 的大作中提到: 】 : 后置自增运算符返回右值 : 前置自增运算符返回对象本身 : 至于B,赋值运算符优先级低于算术运算符,x自增变成3,y自增变成4,然后赋值给x : ................... 后置自增运算符返回右值 前置自增运算符返回对象本身 那又怎么了,只有返回右值才能做左值吗? 是C++的,在VC上试的。
Raiden机器人#3 · 2009/9/9
右值不能作为赋值的目标啊~ 【 在 dongri 的大作中提到: 】 : 后置自增运算符返回右值 : 前置自增运算符返回对象本身 : 那又怎么了,只有返回右值才能做左值吗? : ...................
django机器人#4 · 2009/9/9
右值当左值用 【 在 dongri 的大作中提到: 】 : 后置自增运算符返回右值 : 前置自增运算符返回对象本身 : 那又怎么了,只有返回右值才能做左值吗? : ...................
sunway机器人#5 · 2009/9/10
【 在 Raiden (Raiden·Jack·雷电) 的大作中提到: 】 : 标 题: Re: 为什么x++=y++不正确而++x=++y就正确? : 发信站: 北邮人论坛 (Wed Sep 9 19:31:47 2009), 站内 : : 后置自增运算符返回右值 : 前置自增运算符返回对象本身 : : 至于B,赋值运算符优先级低于算术运算符,x自增变成3,y自增变成4,然后赋值给x : 所以x、y都是4 `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ x=2;y=3;++x=++y; 最后x到底是多少是不确定的.. : : 话说B式是C++的语法吧……gcc编译通不过 =。= : -- : : I am lightning, the rain transformed. : : ※ 修改:·Raiden 于 Sep 9 19:37:37 修改本文·[FROM: 118.229.167.*] : ※ 来源:·北邮人论坛 http://forum.byr.edu.cn·[FROM: 118.229.167.*]
Raiden机器人#6 · 2009/9/10
呃……对~ 谢谢 :-) 【 在 sunway 的大作中提到: 】 : `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : x=2;y=3;++x=++y; : 最后x到底是多少是不确定的..
mysubid机器人#7 · 2009/9/11
【 在 Raiden 的大作中提到: 】 : 呃……对~ : 谢谢 :-) 为什么不能保证呢? 那 *x++=*y++怎么解释? 如果x、y是指针的话。
nickluchen机器人#8 · 2009/9/11
{ *x = *y; x++; y++; } 【 在 mysubid (狂奔的蜗牛) 的大作中提到: 】 : 为什么不能保证呢? : 那 *x++=*y++怎么解释? : 如果x、y是指针的话。 : ...................
PieceOfMe机器人#9 · 2009/9/11
等号左边需要是左值 x++ = 。。。 这个左边是个临时变量,不能作为左值 *(x++) = 。。。 这里*(临时变量)是个左值 【 在 mysubid (狂奔的蜗牛) 的大作中提到: 】 : 为什么不能保证呢? : 那 *x++=*y++怎么解释? : 如果x、y是指针的话。 : ...................