腾讯面试--指针

   好久没发东东了, 今天去了腾讯面试了,估计过不了,图像处理的知识基本不起任何作用。

  下面关于一条腾讯的面试题。

      int a[]={10,20,30,40,50};
     short *p,*q;
     p=(short*)(a+1);
     q=(short*)a;
     cout<<a[p-q]<<endl;

   问输出的是什么 ?

   晕掉~.~

 调试结果发现

   0012FF68 (p的地址)
   0012FF64 (q的地址)

  a[p-q]=30

 p - q应该是4吧怎么会是 2呢,想不通。

 最后在同学的提醒下终于知道原因了:

   原来 p - q并不是地址间的直接相减,而是看你在两个地址间跨越了多少个元素。所以结果为p-q应为(p的地址-q的地址)/sizeof(type)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值