int a[3][4],(*p)[4];p=a;那么*(*p+2);*(a+2)[0];(*a+2)[0]分别表示什么 为什么

兄弟哪位知道,int a[3][4],(*p)[4];p=a;那么*(*p+2);*(a+2)[0];(*a+2)[0]分别表示什么 为什么
最新回答
思绪づ走了

2024-11-24 07:54:54

* 是间接寻址运算符。
(*p)[4] 是一个指针,指向 有4个元素的 一维数组。
p=a p 指向 a 数组的开始
*(*p+2) -- 值 a[0][2];
*(a+2)[0] -- 值 a[2][0];
(*a+2)[0] -- 值 a[0][2];
巅峰小学生

2024-11-24 07:58:23

*(*p+2); 相当于 a[0][2] *p是a的地址,地址加上2等于[2]
*(a+2)[0]; 相当于 a[2][0] 没什么解释的,数组的另一种表示方法
(*a+2)[0] 相当于 a[0][2] *a 相当于p ,p+2 也就是p[2] 而p[2] 等于 a[0][2]