int array [][3]={1,2,3,4,5,6,7,8,9};
C语言中不存在所谓的二维数组,三维数组,四维数组,。。。
C语言中只有数组中的数组,就是在数组中存储数组int array [3][3]={1,2,3,4,5,6,7,8,9};
array是一个数组,有3个元素,每一个元素都是一个数组
array是一个数组,array[0] 也是一个数组
同样 array[1] 和 array[2] 也是数组
array[0] 这个数组有3个元素,每一个元素都是一个int
array[0] 的元素是 {1, 2, 3}
array[1] 的元素是 {4, 5, 6}
array[2] 的元素是 {7, 8, 9}
其实这个int array [3][3]={1,2,3,4,5,6,7,8,9};
写成下面这样更好,更能体现数组中的数组 int array[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
array 是数组第0个元素的地址
&array 是数组的地址
array + 1 就是 &array[0] + 1
array[0] 是一个数组,&array[0] 就是 array[0] 这个数组的地址
&array[0] + 1 就成了 数组 array[1] 的地址,就是 &array[1]
*(array + 1) 就是 *&array[1]
*&array[1] 也就是 array[1]
array[1] 是一个数组,元素是 {4, 5, 6}
array[1] 是一个数组,就可以理解成数组的名字
array[1] 就是 &array[1][0]
数组的名字是数组第0个元素的地址
数组名 == &数组名[0]
array[1] == 数组名
& array[1] [0]
就是把数组名字的前面加上一个 &
后面加上一个 [0]
&array[1][0]
就是 array[1] 这个数组第0个元素的地址
写了这么多,不知道你能不能看懂
其实很简单,你就把多维数组看成是在数组里面存储数组
array 是一个数组
array[0] 也是一个数组,是array这个数组第0个元素
array 是数组的名字
因为array这个数组的第0个元素是一个数组,array[0] 也是数组的名字
|