课程咨询 : TEL:0571-56020830 QQ:907090242

杭州达内ios培训

  • 一个小笔试题在iOS上的不同表现

    发布:杭州达内      来源:达内培训      时间:2015-08-06



  •     试题:
            #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。

上一篇:十大iOS面试试题解答

下一篇:12道iOS常见面试试题及详解

开班日期  |  更多

IOS--零基础全日制

IOS--零基础全日制

开班日期:每月28日

IOS--零基础周末班

IOS--零基础周末班

开班日期:每月28日

IOS--全日制班

IOS--全日制班

开班日期:每月28日

IOS--周末班

IOS--周末班

开班日期:每月28日

  • 地址:杭州市西湖区教工路23号百脑汇科技大厦15楼1508室21
  • 课程培训电话: TEL:0571-56020830 QQ:907090242     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2002-2018 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56