C语言 里为什么不能 (a++)++

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:22:12
如题,后缀操作符为什么不能连锁调用?
那为什么可以++(++a)呢?

因为++操作符的对象是可修改的左值,
就好象 a += 1一样,是可以赋值的变量,
但是a++本身是一个表达式,是一个右值(比如a += 1中的1),不可修改,所以(a++)++试图改变一个非变量的值,
编译后会出错

不能对表达式赋值,而++相当于对一个变量重新赋值,并且a++是个表达式,所以会出错。

(a++)++

++自增运算符的变量不能是表达式!!!

(a++)++ 可以看做 (a=a+1)=(a=a+1)+1
显然是错误的