http://zhidao.baidu.com/question/415233232.html?quesup2&oldq=1
前几天去华为赛门铁克笔试,有一道题:int a[5][5]; int (*p)[3]; p = a; &p[4][2]-&a[4][2]=? —————————————— 您的回答是这样的: 首先:p=a;是非法的,类型不同 a的地址要给d得强制转换: p=(int(*)[3])a; 这样的话&p[4][2]-&a[4][2] =a+3*4+2-(a+5*4+2) = 14-22= -8 ################## 我想问问,这里是-8,是指的在二维数组中的“差距”(我姑且这样理解),可是“&p[4][2]”前面有个取地址符,是内存地址,因为int型数据占四个字节,那答案为什么不是-8*4呢?这一点疑惑很久了,请您指教,谢谢!