首先给结论:两者并无差别,看个人喜好。
在看《essential C++》的过程中,看到书中的for循环里面用的都是++i,我在想这有什么不同吗?
首先按照本书中介绍的,i++是首先将i赋值然后再加1,++i则是i先加1再赋值给其他变量。
拿书中的例子:
int i=0;
cout<<"++在前面:"<<++i<<'\n';
int ii=0;
cout<<"++在后面:"<<ii++<<'\n';
然后运行我们看运行结果:
for循环中我是这样比较的,代码如下:
#include <iostream>
using namespace std;
int main(){
int ix;
string str="helloworld";
cout<<"++ix: ";
for(ix=0;ix<10;++ix)
{
cout<<str[ix];
cout<<'\t';
cout<<ix<<'\t';
}
cout<<endl;
cout<<"ix++: ";
for(ix=0;ix<10;ix++)
{
cout<<str[ix];
cout<<'\t';
cout<<ix<<'\t';
}
return 0;
}
可以看出图中两个for循环的输出结果是相同的。因此我认为在for循环中写i++或者是++i是不影响输出结果的。因为for循环中的i++或者++i是在for的代码执行以后才会自加1.这是我的理解。