V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
alexapollo
V2EX  ›  程序员

分享下 C 语言的奇技淫巧

  •  
  •   alexapollo ·
    geekan · Jan 6, 2015 · 8226 views
    This topic created in 4129 days ago, the information mentioned may be changed or developed.

    引用贾扬清的回答:

    C有一个鲜为人知的运算符叫”趋向于”, 写作“-->”。
    比如说如果要实现一个倒数的程序,我们可以定义一个变量x,然后让它趋向于0:
    #include <stdio.h>
    
    int main(int argc, char** argv) {
      int x = 10;
      while (x --> 0) {
        printf("%d ", x);
      }
      return 0;
    }
    会打印出:
    9 8 7 6 5 4 3 2 1 0
    

    补充:

    C有另一个更鲜为人知的运算符叫做“快速趋向于”,比如同样是从10到0,这里这么写
    #include <stdio.h>
    
    int main(int argc, char** argv) {
      int x = 10;
      while (0 <---- x) {
        printf("%d ", x);
      }
      return 0;
    }
    会打印出:
    8 6 4 2
    

    我的完整回答(语法不一样好难贴过来): http://zhi.hu/dmhV

    48 replies    2015-01-11 16:37:45 +08:00
    wittyfox
        1
    wittyfox  
       Jan 6, 2015
    --> 步长是 1
    ----> 步长是 2
    那么
    ------> 步长是 3?
    --------> 步长是 4?
    --------------------> 步长是 10?
    xmbaozi
        2
    xmbaozi  
       Jan 6, 2015 via Android
    x--;x>0
    下面同理,是这样吗
    xmbaozi
        3
    xmbaozi  
       Jan 6, 2015 via Android
    我想过简化php的while写法,然后就是lz那样了。
    Valyrian
        4
    Valyrian  
       Jan 6, 2015   ❤️ 1
    别骗人了,其实是这个意思
    ```while ( (x--) > 0 )```
    timothyye
        5
    timothyye  
       Jan 6, 2015 via Android   ❤️ 1
    感觉就是自增和自减吧?
    那应该还有个操作符叫x++>
    tobyxdd
        6
    tobyxdd  
       Jan 6, 2015 via Android
    不就是减一再比大小吗
    omegaga
        7
    omegaga  
       Jan 6, 2015 via Android   ❤️ 6
    这难道不是一个冷笑话吗…
    nicai000
        8
    nicai000  
       Jan 6, 2015   ❤️ 1
    那是--和-- --, 还趋向于.... 好笑
    zyue
        9
    zyue  
       Jan 6, 2015
    哈哈 自减变成趋向于了
    xpol
        10
    xpol  
       Jan 6, 2015
    以前还被强制类型转换骗过。
    mortal
        11
    mortal  
       Jan 6, 2015
    奇技淫巧…
    让我笑会先 2333
    47jm9ozp
        12
    47jm9ozp  
       Jan 6, 2015
    我还真被忽悠了……
    Kilerd
        13
    Kilerd  
       Jan 6, 2015 via Android
    我可以理解为(x--)>0吗
    46fo
        14
    46fo  
       Jan 6, 2015 via iPhone
    瞎说根本没这个运算符。骗小白还可以。明明是x-- 然后再> --优先级高
    46fo
        15
    46fo  
       Jan 6, 2015 via iPhone
    <---- 是--再--再<
    233
        16
    233  
       Jan 6, 2015
    lz都说了,下面是他完整的回答
    spacewander
        17
    spacewander  
       Jan 6, 2015
    这贴发得真不是时候,应该等到3个月后的再前5天才发。
    owlsec
        18
    owlsec  
       Jan 6, 2015
    让我笑一会!妈叉啊笑死我了!
    cuiweiqiang
        19
    cuiweiqiang  
       Jan 6, 2015
    上当了
    pandada8
        20
    pandada8  
       Jan 6, 2015
    如此机智
    erenno1
        21
    erenno1  
       Jan 6, 2015
    笑尿了~
    BGLL
        22
    BGLL  
       Jan 6, 2015
    被骗了,我说怎么没听过 -->,还去查了各版C运算符表…
    xbb7766
        23
    xbb7766  
       Jan 6, 2015
    论空格在排版中的妙用~~
    ligyxy
        24
    ligyxy  
       Jan 6, 2015
    快速趋向于。。真的笑了
    timekiller
        25
    timekiller  
       Jan 7, 2015 via Android
    好好笑~铜币送给你~
    Delbert
        26
    Delbert  
       Jan 7, 2015
    笑死了。收藏去骗人。
    muziyue
        27
    muziyue  
       Jan 7, 2015
    ls怎么这么多认真的……
    guoqiao
        28
    guoqiao  
       Jan 7, 2015
    本月最佳:D
    ChangeTheWorld
        29
    ChangeTheWorld  
       Jan 7, 2015
    楼主你真是个人才,人工智能的未来靠你了!
    xiaozi
        30
    xiaozi  
       Jan 7, 2015
    这几天整理了一下几种编程语言的奇技淫巧

    http://tool.lu/tip
    lushl9301
        31
    lushl9301  
       Jan 7, 2015
    diao diao da...

    =. =|||
    kokochen
        32
    kokochen  
       Jan 7, 2015
    被骗了- -
    mcone
        33
    mcone  
       Jan 7, 2015   ❤️ 1
    xylophone21
        34
    xylophone21  
       Jan 7, 2015
    差点被骗了,哈哈
    caomaocao
        35
    caomaocao  
       Jan 7, 2015
    我真的拿到IDE里去试了.......
    caomaocao
        36
    caomaocao  
       Jan 7, 2015
    为自己的扎实基本功蠢哭了....
    zealic
        37
    zealic  
       Jan 7, 2015
    哇,好牛逼啊。
    我也知道两个神奇的隐藏技巧, -->> 以及 --<< 操作符。
    bastijr
        38
    bastijr  
       Jan 7, 2015
    哈哈!原来是:
    while( (x--) > 0 )
    semicircle21
        39
    semicircle21  
       Jan 7, 2015
    2333333333333333
    wdy1184
        40
    wdy1184  
       Jan 7, 2015
    @bastijr 有道理啊
    acros
        41
    acros  
       Jan 7, 2015
    我的第一个反应竟然是竟然还有编译器支持这个运算符····

    我了个去····
    Bitex
        42
    Bitex  
       Jan 7, 2015
    第二个例子确定可以运行?--i不是左值吧
    a1996
        43
    a1996  
       Jan 7, 2015
    妈蛋我也信了
    josephok
        44
    josephok  
       Jan 7, 2015
    真机智。
    cw35
        45
    cw35  
       Jan 7, 2015
    x-- > 0
    0 < --x
    luikore
        46
    luikore  
       Jan 7, 2015
    patrickstar
        47
    patrickstar  
       Jan 7, 2015
    第一次看见这个操作符,哪天试一下子
    mingyun
        48
    mingyun  
       Jan 11, 2015
    @xiaozi 有意思
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5918 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 150ms · UTC 01:58 · PVG 09:58 · LAX 18:58 · JFK 21:58
    ♥ Do have faith in what you're doing.