V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
EchoChan
V2EX  ›  问与答

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

  •  
  •   EchoChan · May 31, 2015 · 2626 views
    This topic created in 3990 days ago, the information mentioned may be changed or developed.

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

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

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

    ```

    执行一下就明白 区别在哪里了。
    des
        5
    des  
       May 31, 2015 via Android
    @vivianalive 最好的不是php吗?
    wy315700
        6
    wy315700  
       May 31, 2015 via Android
    编译器自动优化的,没区别
    EchoChan
        7
    EchoChan  
    OP
       May 31, 2015
    @Kilerd 既然是大势所趋,还是用++i 好了。
    Kilerd
        8
    Kilerd  
       May 31, 2015
    @EchoChan 两者是有区别的,,去认证学习一下吧
    EchoChan
        9
    EchoChan  
    OP
       May 31, 2015
    @Kilerd 那个区别我还是知道的。谢啦。
    lzachilles
        10
    lzachilles  
       May 31, 2015
    这个年代的编译器会优化i++的
    最好的写法是跟着项目的写法写
    acros
        11
    acros  
       May 31, 2015
    c++primer 第四版里面有提到尽量用++i。
    说是当i为一些比较复杂的iterator时编译器也优化不掉i++。反正我不知道是哪个····
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2529 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 02:35 · PVG 10:35 · LAX 19:35 · JFK 22:35
    ♥ Do have faith in what you're doing.