问题
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
是更好的选择。