a[][3], *a( a[0]) 的类型是一个 int[3] 类型(数组), a[0][0] == *( *(a+0) +0), *(a+0)指向首元素, 再加j 指向第j-1个元素

 

二维数组a[2][3],二维数组的第一个元素是一个 int[3],即一维数组。
a在表达式中会 decay 为指针,指向第一个元素,
a的类型是int (*)[3],指向含3个int的一维数组。
*a的类型是一个 int[3] 类型(数组)
*(a+0)即a[0],放到表达式里面,再退化为 int*,*a指向一维数组的第一个元素,指向第一个int(a[0][0]。
**a即一维数组第一个元素,即* ( *(a+0) +0),对吗


*(a + i) / a[i] 也是一维数组(类型 int[3],在表达式中退化成 `int*`,
一维数组取值,再加一个下标符[],即a[][]

*(a + i) + j 指向第j个(列)元素

a     是  int (*)[3],*a 是 int[3](在表达式中衰减为 int*)
**a 等价于 a[0][0],写成 *(*(a+0)+0)也可
posted @ 2025-08-29 13:44  books2read  阅读(11)  评论(0)    收藏  举报
Total Visits
AmazingCounters.com