在C语言中,使用++i和i++之间有什么区别,在for循环的递增块中应该使用哪一个
-
++i将递增i的值,然后返回递增的值i=1; j=++i; (i为2,j为2) -
i++将增加i的值,但返回在增加之前保留的原始值i=1; j=i++; (i为2,j为1)
对于For循环,两种方法都可以++i似乎更为常见,可能是因为这正是K&;R
在任何情况下,请遵循“首选++i而不是i++”的指导原则,这样您就不会出错
关于++i和i++的效率,有一些评论。在任何非学生项目编译器中,都不会有性能差异。您可以通过查看生成的相同代码来验证这一点
效率问题很有趣。。。以下是我试图回答的问题:
在C中,i++和++i之间有性能差异吗
as @ on Frund注释,对于C++对象来说是不同的,因为运算符++()/Cuth>是一个函数,编译器不能知道如何优化临时对象的创建以保持中间值。