问题描述:
如例:
int i=10;
cout<< ++i + i++ <<endl;
结果为22,我认为结果为应为21,不甚明白,
我的理解,前面++i,先i自增1,其值变为11,再参与运算,
后面i++,i先参与运算,故为10,再自增参与下一次的运算,
所以结果为:21
我将i的初始化值改为1,其结果为4,
也就是说在进行加法(+)运算之前i都自增了,不理解!!
问题解答:
第一步
++i;返回值为11(因为i值为10,++前置,i加了1后为11,并返回11),执行完后i 值为11
第二步
i++;返回值为11(因为i值为11,++后置,先返回i的值11,然后i加1),执行完后i 值为12
把两个返回值相加得22
bnvbnvbnvbn