二维数组

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 @   踏浪而来的人  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示