1. 二维数组可以用行指针和列指针来表示
行指针 = 数组指针;二维数组名就是第一行的首地址
数组指针加1表示跳过整个指向的数组。
2. 数组指针如何访问数组成员空间?
p指向的是数组的地址,也就是&数组名,那么*p就是对取地址后的数组名再*操作,因为&与*为互逆操作,所以此时*p就等同于数组名,所以通过数组指针访问数组成员空间时,只要将数组名替换为*p即可
如:int a[3][4] = {{1,2,3,0},{4,5,6,0},{7,8,9,0}}
a就是第一行的地址,所以a+1就是第二行的首地址(数组指针加1相当于跳过的步长为指向数组的长度),行地址还可以用&a[0]来表示第一行的地址;
*a就是第一行第一列的地址,*(a+1)表示第二行第一列的地址(通过普通指针和一维数组类比,a[1] = *(a+1),所以a[1]也表示第二行第一列的地址);
总结:a和&a[0]是第一行的地址,a+1和&a[1]是第一行的地址
*a和a[0]是第一行第一列的地址,*(a+1)和a[1]是第二行第一列的地址,*(a+1)+1和a[1]+1是第二行第二列的地址
注:每一行的行地址和该行的第一列地址是一样的,但是行地址加1和列地址加1所表示的意义不一样
行地址加1表示跳过一行的长度,即数组指针所指向的数组长度;
列指针加1表示跳过数组元素的大小,即数组中的下一个元素。
即行指针是选择二位数组中的哪个数组,列指针是选择该数组中的哪个元素
标签:第一行,数组名,地址,二维,数组,第一列,指针 From: https://www.cnblogs.com/zj-studyrecoding/p/17758869.html