课程咨询 :18487146383     QQ:570023382

长沙ios培训 > 雇主企业 > 企业面试题 > 一个小笔试题在iOS上的不同表现
  • 一个小笔试题在iOS上的不同表现

    发布:长沙ios培训      来源:企业面试题      时间:2016-02-13

  • 试题:

    #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。

    推荐文章

上一篇:看世界著名互联网公司的古怪面试题

下一篇:5道iOS小谈面试题

最新开班日期  |  更多

3G-IOS软件工程师就业班

3G-IOS软件工程师就业班

开班日期:11/30

3G-IOS软件工程师就业班

3G-IOS软件工程师就业班

开班日期:11/30

3G-IOS软件工程师全日制班

3G-IOS软件工程师全日制班

开班日期:11/30

3G-IOS软件工程师周末班

3G-IOS软件工程师周末班

开班日期:11/30

  • 网址:http:/cs.ios.tedu.cn     地址:长沙市芙蓉中路一段479号建鸿达现代城27楼
  • 课程培训电话:18487146383     QQ:570023382     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56