老师说C语言里++是从右向左运算 当a=4,为什么a++*a 的是从左往右计算呢?

老师说C语言里++是从右向左运算
当a=4,
为什么a++*a 的是从左往右计算呢?

不是应该从右往左计算吗?
而且++的运算级别要高于*啊! 应该先算啊!

第1个回答  2013-01-19
a++*a=16 之后a的值就变为5了,是算了之后a再自加的,常见的for循环中都是这样算的。
第2个回答  2013-01-19
恩,是由运算级别的高低决定的。
第3个回答  2013-01-19
从右向左是指++左边和右边都是合法的变量
如果a++*a从右向左的话,“++*”是什么意思呢?很明显计算机是可以分辨出来的,应该是(a++)*a
但是对于a+++a的话,则可以认为是a+(++a)
第4个回答  2013-01-19
同问,为什么结果会是16?
就是是从左至右,那过程不应该是:a=a+1;s=a*a?也不对啊?
相似回答