课程咨询 :024-22556151

保险公司承保达内学员学习效果

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

    发布:达内      来源:达内      时间:2015-10-30

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

上一篇:NET面试基础题型解析

下一篇:.NET笔试题集

最新开班日期  |  更多

.NET培训工程师班--全日制班

.NET培训工程师班--全日制班

开班日期:7月31日

.NET培训工程师班--周末班

.NET培训工程师班--周末班

开班日期:7月31日

.NET培训—零基础全日制

.NET培训—零基础全日制

开班日期:7月31日

.NET培训—零基础周末班

.NET培训—零基础周末班

开班日期:7月31日

  • 地址:沈阳市沈河区青年北大街7号东煤地质大厦3楼
  • 课程培训电话:024-22556151     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56