V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
EchoChan
V2EX  ›  问与答

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

  •  
  •   EchoChan · 2015-05-31 15:27:33 +08:00 · 2142 次点击
    这是一个创建于 3469 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    ```

    执行一下就明白 区别在哪里了。
    des
        5
    des  
       2015-05-31 16:13:39 +08:00 via Android
    @vivianalive 最好的不是php吗?
    wy315700
        6
    wy315700  
       2015-05-31 16:19:15 +08:00 via Android
    编译器自动优化的,没区别
    EchoChan
        7
    EchoChan  
    OP
       2015-05-31 16:26:30 +08:00
    @Kilerd 既然是大势所趋,还是用++i 好了。
    Kilerd
        8
    Kilerd  
       2015-05-31 16:27:15 +08:00
    @EchoChan 两者是有区别的,,去认证学习一下吧
    EchoChan
        9
    EchoChan  
    OP
       2015-05-31 16:35:42 +08:00
    @Kilerd 那个区别我还是知道的。谢啦。
    lzachilles
        10
    lzachilles  
       2015-05-31 17:06:36 +08:00
    这个年代的编译器会优化i++的
    最好的写法是跟着项目的写法写
    acros
        11
    acros  
       2015-05-31 17:07:54 +08:00
    c++primer 第四版里面有提到尽量用++i。
    说是当i为一些比较复杂的iterator时编译器也优化不掉i++。反正我不知道是哪个····
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1097 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:37 · PVG 06:37 · LAX 14:37 · JFK 17:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.