看到这道题目,我的理解是
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]=====>内存溢出,程序崩溃