【C语言】二维数组
【摘要】 @TOC 前言本节课讲的是二维数组,实际上和一维数组差不多提示:以下是本篇文章正文内容,下面案例可供参考 一、声明与对比声明:int a[5];//一维数组int a[3][4];//二维数组对比:一维数组:元素是数据类型的的数组 二维数组:元素是一维数组的数组,本质还是一维数组c 是 3 个元素的一维数组,每个元素是 4 元素的一维数组图解:二维数组一般理解为行列,对初学者比较友好,int...
@TOC
前言
本节课讲的是二维数组,实际上和一维数组差不多
提示:以下是本篇文章正文内容,下面案例可供参考
一、声明与对比
声明:
int a[5];//一维数组
int a[3][4];//二维数组
对比:
一维数组:元素是数据类型的的数组 二维数组:元素是一维数组的数组,本质还是一维数组
c 是 3 个元素的一维数组,每个元素是 4 元素的一维数组
图解:
二维数组一般理解为行列,对初学者比较友好,int a[行][列],即 3 行 4 列,如下
二、二维数组初始化、下标、以及遍历
初始化:
//一些常见的情况
int a[3][2] = {{3,2},{6,5},{8,7}}; //内部大括号对应每个小一维数组 3 2 6 5 8 7
int a[3][2] = {{3},{9},{8,7}}; //初始化部分元素,其他默认 0 3 0 9 0 8 7
int a[3][2] = {3,9,8 }; //没有内部大括号,就依次初始化各元素,其他为 0 3 9 8 0 0 0
int a[ ][2] = {3,9,8}; //初始化时,可不写行,系统根据数据个数计算行,2 行 3 9 8 0
下标:
行下标与列下标,都是从 0 开始
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //行下标:0 1 2 列下标:0 1 2 3
//元素: a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1]
//a[2][2] a[2][3]
二维数组元素个数为行*列
另一个角度 a[0]是第 1 个小数组的数组名字 a[1]是第 2 个小数组的数组名字 a[2]是第 3 个小数组的数组名字 第一个小数组的第一个元素就是 a[0][0]
图解:
二维数组遍历:
因为他有行和列,所以需要两个for循环,如果要按顺序输出的话:
就需要列的for循环在行的for循环里面
//遍历
int i, j;
int c[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d ", a[i][j]);
}
putchar('\n');//换行
}
三、二维数组赋值,地址,数组的大小
赋值:
a[0][0]=11;
a[0][1]=12;
a[0][2]=13;
a[0][3]=14 ;
a[1][0]=15 ;
a[1][1]=16 ;
a[1][2]=17 ;
a[1][3]=18 ;
a[2][0]=10 ;
a[2][1]=11;
a[2][2]=12 ;
a[2][3]=13;
遍历赋值也是可以的
地址:
如:a[0][0]为一个变量的名字,则&a[0][0]为一个变量的地址
如果出现&a[0]
呢?其实他是第一行的第一个的元素地址
&a[1]为第二行的首元素的首地址,&a[3]为第三行的首元素的首地址
scanf_s("%d", &a[2][2]);
二维数组的大小:
//数组的大小:sizeof()
//元素个数:行*列
int a[2][3];
sizeof(a);
//2*3 = 6
四、其他更高维的数组
其他类型的数组同理
此外还有三维数组,四维数组等等多维数组,
int a[2][3][4]; 三维数组
int c[2][3][4][5]; 四维数组
原理跟二维数组一样,平时基本用不到。
总结
本节课讲的是二维数组的使用、以及更高维度的数组的简介
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)