二维数组

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表示跳过数组元素的大小,即数组中的下一个元素。

  即行指针是选择二位数组中的哪个数组,列指针是选择该数组中的哪个元素

posted @ 2023-10-12 10:10  踏浪而来的人  阅读(70)  评论(0编辑  收藏  举报