怎么说?a++难道和a=a+1在本质上不是一样吗?
我承认这两者间是有区别的。包括++a在内。
我承认这两者间是有区别的。包括++a在内。
倚天照海花无数,流水高山心自知。
一:a=3*5,a*4整个表达式的值是60
二:1 :(a=3*5,a*4),a+5 是先计算出A的值是15
2 :进行a*4的运算得60(但a值未变,仍为15)
3 :进行A+5得20,即整个表达式的值为20
而第二题为什么最后的答案不是65 而第2部为什么a不变仍是15
到底用法是怎么回事?
请大家帮帮忙!
逗号表达式的值取最右边的结果,然而运算的顺序从左往右执行。
如此,分析第一题:a=3*5,a*4
所以表达式是先把a赋值为15,然后进行a*4的运算,所以,表达式的结果为60;
第二题,左边同样是把a赋值为15,至于a*4的运算有没有执行,这无关紧要(实际上它不执行,在编译优化的时候会去掉该部分),然后执行右边部分a+5,所以表达式的值为15+5.
不知楼主明白没?
[此贴子已经被作者于2006-7-19 16:07:28编辑过]