问题描述:
int i=10;
cout<<i++<<','<<i<<endl;
cout<<--i<<','<<i<<endl;
执行后结果为:
10,10
10,11
那位能写出执行的过程,是怎么得到这个结果的,谢谢!
问题解答:
我估计++ --的运算你已懂了, 但cout是从右向左刷新的,
cout<<i++<<','<<i<<endl;
先是<<i = 10
然后<<i++ = 10, 但这时i=11
cout<<--i<<','<<i<<endl;
先是<<i = 11
然后<<--i = 10
所以结果是
10, 10
10, 11
++和--的原理一样
先说i++,在包含i++的语句执行完毕之后i的值才+1,而在此语句之中i++仍然用的是i的值;
再说++i,而是把i+1的值直接应用语句之的++i中,语句执行完毕之后i变成i+1;
既然这样你看,第一个语句cout<<i++<<','<<i<<endl;
这是一个语句,请主意,在这个语句执行之后i的值才是11!!!!!!!!!!
同样第二个语句cout<<--i<<','<<i<<endl; 因为是--i所以--i的值立即变成了10,而在这个语句中i的值还是11。
我想你没弄明白的主要原因是语句没能区分好,
cout<<i++<<','<<i<<endl; 这是一个语句
而{cout<<i++<<endl;cout<<i<<endl;}
这才是2个语句
楼上说得对,
"cout是从右向左刷新的"这句话我是第一次听说,但很有道理,