1、连续存储
2、二维数组的行地址与列地址
1)行地址
1、二维数组中,数组名a的值,是数组a首元素a[0][0]的地址,即&a[0][0],第一行第一个元素的地址;
2、二维数组中,数组名a+1是数组a的元素a[1][0]的地址,即&a[1][0],第二行第一个元素的地址;
2)列地址
1、二维数组中,a[0]的值,即该数组的首元素a[0][0]的地址,即&a[0][0];
2、二维数组中,a[0]+1的值,是数组元素a[0][1]的值,即&a[0][1];
3)混合一下
1、二维数组中,“a[0]+1”是指向数组元素a[0][1]的地址,“a[1]+2”是指向数组元素a[1][2]的地址;
2、同样的,二维数组中,“*(a+1)+2”是指向数组元素a[1][2]的地址,与“a[1]+2”相等;
注:
*(a+1)表示第2行的行地址;
*a+1表示第一行第二个元素的地址;
3、二维数组中,*(*(a+1)+2))是数组元素a[1][2]的值!!!
-
/*
-
*copyright(c) 2018,HH
-
*All rights reserved.
-
*作 者:HH
-
*完成日期:2018年7月25日
-
*版本号:v1.0
-
*
-
*问题描:二维数组,元素地址的表示,行列地址的表示;
-
*输入描述:;
-
*程序输出:
-
*/
-
-
-
int main()
-
{
-
int a[2][3]={{1,2,3},{4,5,6}};
-
int i,j;
-
int *p1,*p2,*p3,*p4,*p5,*p6;
-
printf("array a is :\n");
-
for(i=0;i<2;i++)
-
{
-
for(j=0;j<3;j++)
-
{
-
printf("%d ",a[i][j]);
-
}
-
printf("\n");
-
}
-
printf("array b is :\n");
-
p1=a;//二维数组的数组名,即首元素a[0][0]的首地址;
-
p2=a+1;//a+1是数组a的元素a[1][0]的地址,即&a[1][0]
-
p3=a[0];//同a[0][0]的地址,即第一行第一个元素的地址
-
p4=a[1];//同a[1][0]的地址,即第二行第一个元素的地址
-
printf("p1=a指向的值是:%d;地址是:%d\n",*p1,p1);
-
printf("p2=a+1指向的值是:%d;地址是:%d\n",*p2,p2);
-
printf("p3=a[0]指向的值是:%d;地址是:%d\n",*p3,p3);
-
printf("p4=a[1]指向的值是:%d;地址是:%d\n",*p4,p4);
-
p5=a[0]+1;//指向第一行,第二列元素的地址;
-
p6=a[1]+1;//指向第二行,第一列元素的地址;
-
printf("p5=a[0]+1指向的值是:%d;地址是:%d\n",*p5,p5);
-
printf("p6=a[1]+1指向的值是:%d;地址是:%d\n",*p6,p6);
-
printf("*(a+1)指向的地址是:%d\n",*(a+1));
-
printf("*(*(a+1))指向的值是:%d\n",*(*(a+1)));
-
printf("*(a+1)+2指向的地址是:%d\n",(*(a+1)+2));
-
printf("*(a+1)+2指向的值是:%d\n",*(*(a+1)+2));
-
printf("*a+2指向的值是:%d;地址是:%d\n",*(*a+2),*a+2);
-
return 0;
-
}
3)行地址,列地址的等价写法
注:在二维数组a[i][j]中,a[i]是“行名”,等价于指针;
a[0]等价于a,都表示指针;
a[1]等价于a+1,都表示指针;
a[1]+1等价于*(a+1)+1,都表示指针;
注意防止越界!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2019-12-20 利用windbg分析崩溃,句柄泄漏,死锁,CPU高,内存泄漏
2019-12-20 客户端程序出现句柄泄露时查找办法
2017-12-20 QString 乱谈(3)-Qt5与中文
2017-12-20 QString乱谈(2)
2017-12-20 QString 乱谈(1)
2016-12-20 rdynamic和-whole-archive
2016-12-20 gcc和ld 中的参数 --whole-archive 和 --no-whole-archive