循环结构应该是( int i = 0; i < N; i++)合理呢还是( int i = 0; i < N; ++i)合理呢?

2015-05-31 15:27:33 +08:00
 EchoChan

最近用Clion,默认结构是(int i = 0; i < N; ++i)
但以前都习惯用前一种方式。其他的IDE也是用第一种提示。

2135 次点击
所在节点    问与答
11 条回复
manhere
2015-05-31 15:35:13 +08:00
主谓、动宾 区别 :),还是习惯前者
zkd8907
2015-05-31 15:36:16 +08:00
++i和i++在一些旧的编译器下编译是会有一定的性能差异的,不过现在应该大部分的编译器都会自动把i++优化成++i了。
vivianalive
2015-05-31 15:58:00 +08:00
很喜欢用 i++, 简单明了。可惜全宇宙最好的语言 Python 不支持。 =.=!
Kilerd
2015-05-31 16:06:10 +08:00
在for循环里面 i++ 与 ++i 无区别,但是为了理清逻辑,建议用++i(先自加再做操作)

如果在其他操作里面, 两者是有区别的。
```c
int i = 3;
printf("%d",++i);
i = 3;
printf("%d",i++);

```

执行一下就明白 区别在哪里了。
des
2015-05-31 16:13:39 +08:00
@vivianalive 最好的不是php吗?
wy315700
2015-05-31 16:19:15 +08:00
编译器自动优化的,没区别
EchoChan
2015-05-31 16:26:30 +08:00
@Kilerd 既然是大势所趋,还是用++i 好了。
Kilerd
2015-05-31 16:27:15 +08:00
@EchoChan 两者是有区别的,,去认证学习一下吧
EchoChan
2015-05-31 16:35:42 +08:00
@Kilerd 那个区别我还是知道的。谢啦。
lzachilles
2015-05-31 17:06:36 +08:00
这个年代的编译器会优化i++的
最好的写法是跟着项目的写法写
acros
2015-05-31 17:07:54 +08:00
c++primer 第四版里面有提到尽量用++i。
说是当i为一些比较复杂的iterator时编译器也优化不掉i++。反正我不知道是哪个····

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/195085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX