C 语言中, i++ 和 ++i 有什么区别?在 for 语句中应该用哪个?
++i
先使 i 先自加一,然后返回 i,
i = 1;
j = ++i;
(i is 2, j is 2)
i++
先返回 i,再使 i 自加一,
i = 1;
j = i++;
(i is 2, j is 1)
在 for 语句中,建议使用 ++i
。
如果 i 是一个基本类型(short/int/…)的话,++i
和 i++
其实没什么区别。但如果 i 是一个自定义类型的话,它的 operator++
后自加重载比前自加多了一次临时对象的构造,所以从效率上讲,前自加更快。
因此,不管是从习惯,还是风格一致上来讲,前自加 ++i
是更好的选择。