当前位置: 代码迷 >> 单片机 >> 看到口试的一道题目,自己不是很理解
  详细解决方案

看到口试的一道题目,自己不是很理解

热度:119   发布时间:2016-04-28 14:45:22.0
看到面试的一道题目,自己不是很理解

看到这道题目,我的理解是

pdata[3] = &data[8];
result = *(&data[8]-2);

我认为result等于data[8]地址-2对于的内容,数组在内存的地址是不连续的,怎么知道result的值呢?
------解决思路----------------------
指针数组 pdata 所赋的值是 4 个地址:
pdata[0] = &data[11];
pdata[1] = &data[10];
pdata[2] = &data[9];
pdata[3]  = &data[8];

所以,pdata[3][-2] 实际上是相当于访问以 &data[8] 为基址的数组的 -2 个元素。

不过,这种题目就是要为难参试者。实际应用中,没有人会写这样可读性差有没有实际效益的代码。
------解决思路----------------------
&data[10]
或者
pdata[3][-2]===>pdata[3][0xfffffffe]=====>内存溢出,程序崩溃
  相关解决方案