V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alexapollo
V2EX  ›  程序员

分享下 C 语言的奇技淫巧

  •  
  •   alexapollo ·
    geekan · 2015-01-06 19:47:35 +08:00 · 7518 次点击
    这是一个创建于 3405 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引用贾扬清的回答:

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

    http://tool.lu/tip
    lushl9301
        31
    lushl9301  
       2015-01-07 08:33:21 +08:00
    diao diao da...

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

    我了个去····
    Bitex
        42
    Bitex  
       2015-01-07 13:09:54 +08:00
    第二个例子确定可以运行?--i不是左值吧
    a1996
        43
    a1996  
       2015-01-07 14:11:02 +08:00
    妈蛋我也信了
    josephok
        44
    josephok  
       2015-01-07 14:27:52 +08:00
    真机智。
    cw35
        45
    cw35  
       2015-01-07 14:55:36 +08:00
    x-- > 0
    0 < --x
    luikore
        46
    luikore  
       2015-01-07 15:18:27 +08:00
    patrickstar
        47
    patrickstar  
       2015-01-07 16:39:59 +08:00
    第一次看见这个操作符,哪天试一下子
    mingyun
        48
    mingyun  
       2015-01-11 16:37:45 +08:00
    @xiaozi 有意思
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2409 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 908ms · UTC 09:09 · PVG 17:09 · LAX 02:09 · JFK 05:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.