C++中i++ 与++i 的区别
i++的运行流程总结为:
(引用 赋值 加1 返回值)
返回值为const int ,所以无法给i++赋值,(即无法作为左值)
const int func(int& i){
int temp = i;
i = i +1;
return temp;
}
++i的运行流程总结为
(引用 加1 返回引用)
返回引用,可以给++i赋值
int& func(int& i){
i = i+1;
return i;
}
从运行速度上看,++i 要比 i++ 快,所以优先使用++i。
这也就是为什么:
i++ 是先运算后加1
++i 是先加1后运算的原因
两者在for循环中没有区别。