解释下这现象?(c++)

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:17:51
#include <iostream>
using namespace std;

int main()
{
int sum=0;
for(int i=50;i<=100;++i)sum+=i;
cout<<sum<<endl;
sum=0;
for(int i=50;i<=100;++i,sum+=i);
cout<<sum;
system("pause");
return 0;
}
为什么答案不一样?

FOR的第三个表达式是从右向左执行的!

因为第一次的时候是先执行sum+=i; 然后执行++i
后者是先++i然后sum+=i;
所以结果是不一样的。

第1个从50加到100,第2个从51加到101。

最后一次,不一样,第一个是执行完sum+=i;
才执行的++i,第二个是执行完i++才执行的sum+=i;
好像差了一次。