i++ 和 ++i 有什么区别

2022-02-11 08:28:42 浏览数 (1)

问题

C 语言中, i 和 i 有什么区别?在 for 语句中应该用哪个?

回答

i 先使 i 先自加一,然后返回 i,

代码语言:javascript复制
i = 1;
j =   i;
(i is 2, j is 2)

i 先返回 i,再使 i 自加一,

代码语言:javascript复制
i = 1;
j = i  ;
(i is 2, j is 1)

在 for 语句中,建议使用 i

如果 i 是一个基本类型(short/int/…)的话, ii 其实没什么区别。但如果 i 是一个自定义类型的话,它的 operator 后自加重载比前自加多了一次临时对象的构造,所以从效率上讲,前自加更快。

因此,不管是从习惯,还是风格一致上来讲,前自加 i 是更好的选择。

0 人点赞