在C语言中,为什么x++=y++是错误的,而++x=++y是正确的?

2024-12-24 19:10:34
推荐回答(4个)
回答1:

x++有两个地址,一个是x本身的地址,还有个x+1后的地址,所以它不能作为左值,y++不能赋给一个地址不确定的变量。所以会出错,而++x,只有一个地址,就是x+1后的地址,所以能将y+1后的值赋给它,所以是正确的,楼主应该是没明白前++和后++的意义,多看看教材理解理解。

回答2:

x++只能作为右值,而++x既可作为左值又可作为右值。
(意思就是x++只能放在赋值号右面。)
因为x++是把x的值增一,并返回x原来的值,这个值并不储存在变量x的内存地址中,是计算时的一个临时值,因此不能向它赋值。而++x是将x的值增一,并返回x的值,因此可以向这个变量赋值。

回答3:

你确定++x=++y也是正确的? 可以把你那个程序拿来看下么,我记得最多只能同等,或者把右边的值赋于x

回答4:

有可能是+和= 连在一起了,算成+=运算符了吧