小编典典

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

all

++i在 C 中,使用andi++和应该在for循环的增量块中使用和有什么区别?


阅读 99

收藏
2022-02-28

共1个答案

小编典典

  • ++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似乎更常见,也许是因为这是在K&R中使用的。

在任何情况下,遵循“优先”的指导方针++ii++你就不会出错。

关于 和 的效率有一些++i评论i++。在任何非学生项目编译器中,不会有性能差异。您可以通过查看生成的代码来验证这一点,这将是相同的。

C++对象是不同的,因为operator++()它是一个函数,编译器不知道优化临时对象的创建以保存中间值。

2022-02-28