为什么自增运算符(++)不能用于表达式?

书上是这样解释的:(a+b)++不能实现,假如a+b的值为5,那么自增后得到的6放在什么地方呢?无变量可供存放。......这里的“无变量可供存放”是什么意思?

(a+b)++
举个例子让你理解这个题目
假设a=1,b=2;那么(a+b)之后等于3,因此3是一个常量,不再是变量,因此是错误的,也就是说++是不能对常量进行操作的,也就是不能这样使用5++。
其次,你要明白i++是与i=i+1是等效的,也就是说执行i++后,变量i的值本来是1,但执行后就变为2了,而常量的值是不能改变的,也就是说执行5++之后,不可能把5变为6,因此常量不能++。

可以这样理解书上的话,(a+b)++是与(a+b)=(a+b)+1等效的,对于这个表达式(a+b)+1之后的值是放到变量a中还是b中呢?不可能同时放到变量a和b中吧,所以就出现无变量可供存放。

对于二楼讲的观点是错误的,因为c=(a+b)++不管是从常量方面来理解,还是按照a+b)++与(a+b)=(a+b)+1这样来理解都是错的。对常量就很容易理解,我们来看等效语句的解释,首先c=(a+b)++与c=(a+b)=(a+b)+1是等效的,因此最后结果(a+b)++还是无变量可供存放,结果一样错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-11
内存中美空间,如果你再定义一个变量 t=a+b,就可以t++,因为定义了,内存就为t开空间了. 绝对正确.
第2个回答  2010-04-11
如果是a++.自增之后直放在a中,现在a+b无法存放数据。因为a+b不是变量而是表达试。
第3个回答  2010-04-11
i++ 是存放到变量i中
(a+b)++你说自增后是存入a中还是b中 当然没有变量可供存放
第4个回答  2010-04-11
这个你要了解一下++的编译定义

说通俗一点
遇到++计算机是这么运行的
1.找到++的存储变量地址
2.直接操作这个地址内容加1

同学,这个涉及到编译的顺序问题,
与其你要搞懂这个,你不如思考一个问题
int a=1;

a=a+1 与 a++ 那个运行效率高?
这个你要明白了,自然就明白了++,
我保证你明白了这首题,你收获会很大。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网