假设我们有:
但是为什么呢?
int a[2][3] ;
int (*p)[3]=a; // is ok
int (*p)[3]=&a[0]; // is also ok
但是为什么呢?
int (*p)[3]=a[0];
尽管a[0]
给出了第一个数组的地址(因为2D数组是数组的数组),似乎比&a[0]
更好,但仍然可以使用&a[0]
来获得第一个数组的第一个元素的地址。这可能会产生错误,请注意。