读书人

(i++)*(i++)与(++i)*(++i)的区别解决方

发布时间: 2012-04-02 19:58:59 作者: rapoo

(i++)*(i++)与(++i)*(++i)的区别
i = 3;
(i++)*(i++)应该等于9
可是
i = 3;
(++i)*(++i)就等于25
这是为什么?

我知道i++和++i的区别,但是(i++)*(i++)我觉得一个是3,可另一个应该是4呀,应该是12

而(++i)*(++i)应该一个是4一个是5,等于20呀。为什么两个都更新成5了。

[解决办法]
1.(++i)*(++i).对于算术运算符"*",先提取左右的值,因此在本文中,它在乘法之前要先用到i,对于乘号左右的i在用到之前都要加1,总共是加2为5,然后将加2后的值保存在i中,再做乘法,所以运算结果为25,i的值为8。
2.(i++)*(i++)是做完乘法后将i的值自加两次,所以运算结果为9,i的值也为5

等到接分啊

读书人网 >C语言

热点推荐