腾讯面试--指针

来源:互联网 发布:自学英语的软件 编辑:程序博客网 时间:2024/05/20 17:25

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

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

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

 

原创粉丝点击