【发布时间】:2014-02-22 05:10:01
【问题描述】:
我是 C++ 初学者。我的理解是:-
i++先执行,再递增,++i先递增,再执行,i+=1先递增1,再执行。但在 FOR 循环中:
for (i=0;i<10;i++)
for (i=0;i<10;++i)
上面这两个循环确实没有区别。
这是另一个计算从 1 到 100 的所有整数之和的方法:
int i=1, sum=0;
while (i<=100)
{
sum+=i;
i++; //i+=1; ++i;
}
cout<<sum<<" "<<i<<endl;
return 0;
但如果我将 i++ 替换为 i+=1 或 ++i,它们都返回 5050 和 i 的总和 101。所以我真的看不出它们有什么区别。
那么谁能给我解释一下?其中哪一个在编程中使用最多?谢谢!!
【问题讨论】:
-
"i++ 先执行,然后递增,++i 先递增,然后执行,i+=1 递增 1,然后执行" - 危险错误。
i++是“递增并计算到原始值”;没有说明“首先”会发生什么。 -
@user2357112 确实,除非这些运算符被重载,因为
operator++必须在表达式被认为已评估之前返回。这就是为什么通常首选预增量/减量 - 无需创建原始对象的副本。