Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 779 Bytes

067 - i++ 和 ++i 有什么区别.md

File metadata and controls

29 lines (19 loc) · 779 Bytes

https://stackoverflow.com/questions/24853/c-what-is-the-difference-between-i-and-i

问题

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/...)的话,++ii++ 其实没什么区别。但如果 i 是一个自定义类型的话,它的 operator++ 后自加重载比前自加多了一次临时对象的构造,所以从效率上讲,前自加更快。

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