<button id="u2w23"></button>

<tbody id="u2w23"><track id="u2w23"></track></tbody><dd id="u2w23"><track id="u2w23"></track></dd><button id="u2w23"><acronym id="u2w23"></acronym></button> <tbody id="u2w23"><noscript id="u2w23"></noscript></tbody>

  • <button id="u2w23"></button><li id="u2w23"><acronym id="u2w23"><cite id="u2w23"></cite></acronym></li>

  • ?

    一個小筆試題在iOS上的不同表現

    作者:達內 更新時間:2014-06-17 15:30 來源:未知 點擊:
    一個小筆試題在ios上的不同表現及原因。
        試題:
        #define product(x) ((x)*(x))
        - (void)test2
    {
        NSInteger x = 3;
        NSInteger y = product(x++);
        NSLog(@"%d",y);
        NSInteger z = product(++x);
        NSLog(@"%d",z);
    }
        經典的結果應該是y=9,z=49,但是ios上的結果是y=12,z=42。求解答?
        解答:為啥說:經典的結果應該是y=9,z=49,這個與編譯器的有關。按我的理解,這個IOS是對的。
        #define product(x) ((x)*(x))
        先說第一個:
        NSInteger x = 3;
        NSInteger y = product(x++);
        先得到第一個括號里的x值為3,然后執行x++操作,x變為4,然后得到第二個括號里的x值,此時x值為4,所以(3)*(4) = 12,然后執行x++操作,x值變為5。
        第二個:
        NSInteger z = product(++x);
        NSLog(@"%d",z);
        先獲得第一個x值,經過++x,此時x值變為6,獲得第二個x值,經過++x,此時x值變為7, 所以z = (6)*(7) = 42。
    標簽:

    相關閱讀

    最新開班信息

    3G-IOS軟件工程師就業班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師就業班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師周末班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師周末班
    北京潘家園中心 開課日期:9月29日
    大香蕉99精品3线在线观看视频,亚洲欧美AV中文日韩二区91哥精品 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>