use*_*858 2 c++ for-loop increment
我是C++的初学者.我的理解是: -
i ++首先执行,然后递增,++ i先递增,然后执行,i + = 1递增1,然后执行.但是在FOR循环中:
for (i=0;i<10;i++)
for (i=0;i<10;++i)
Run Code Online (Sandbox Code Playgroud)
上面这两个循环确实没有区别.
这是另一个计算从1到100的所有整数的总和:
int i=1, sum=0;
while (i<=100)
{
sum+=i;
i++; //i+=1; ++i;
}
cout<<sum<<" "<<i<<endl;
return 0;
Run Code Online (Sandbox Code Playgroud)
但是如果我用i + = 1或++ i替换i ++,它们都会返回5050和101的总和.所以我真的看不出它们有什么不同.
所以有人可以向我解释这个吗?编程中哪一个最常用?谢谢!!
你是对的.在您的示例中没有区别.
但这里有:
int i = 0;
cout << i++ << endl; //prints 0
cout << i << endl; //prints 1
Run Code Online (Sandbox Code Playgroud)
VS
int i = 0;
cout << ++i << endl; //prints 1
cout << i << endl; //prints 1
Run Code Online (Sandbox Code Playgroud)
编程中哪一个最常用?
大多数情况下,++
是语句中唯一的操作(FYI,for
循环有三个语句).
如果不是,那么它可能很重要,你将使用任何一个给你正确的行为.
FYI
一些开发人员认为,如果pre和postfix运算符应该总是单独使用(不是大语句的一部分).它们可能导致令人困惑的代码,甚至是未定义的行为.
例如,
int i = 0;
cout << i++ + i++ << endl;
Run Code Online (Sandbox Code Playgroud)
有未定义的行为.