> 文章列表 > 【c语言】二维数组

【c语言】二维数组

【c语言】二维数组

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

目录

一维数组知识:

一、二维数组的特性

二、二维数组的基本用法 

三、二维数组的初始化定义

 1)完全初始化

 2)不完全初始化

​ 3)初始化成员个数

四、注意事项

五、循环遍历


 二维数组是对一维数组的延申,学习二维数组前需要对一维数组的知识理解哦~

一维数组知识:

  一维数组详解icon-default.png?t=N2N8https://blog.csdn.net/TiSg0/article/details/130053302?spm=1001.2014.3001.5501

一、二维数组的特性

长度固定 、 同类型、 有编号(先行后列),逻辑造型:表格矩阵状

二维数组声明生成: 类型 数组名[行数][列数]

int arr[3][4];

二、二维数组的基本用法 

 数组元素(成员)的使用:数组名[先行][后列] 

	arr[0][0] = 1;arr[0][3] = 2;arr[2][1] = 3;

二维数组也称为一维数组的一维数组。先找行、再找列

 

三、二维数组的初始化定义

 1)完全初始化

形式1:一维模样      形式2:{}行方式

#include <stdio.h>
int main()
{/* 二维数组 在 声明的同时 直接初始化赋值  *//* 1  完全初始化:形式1:一维摸样 形式2:{}行方式  */int arr1[2][3] = { 1,2,3,4,5,6 };int arr2[2][3] = { {1,2,3},{4,5,6} };for (int i = 0; i < 2; i++) //行{for (int j = 0; j < 3; j++)  //列{printf("%d ", arr1[i][j]);}printf("\\n");}return 0;
}

 一维模样在内存中的表现:

 

 2)不完全初始化

不完全初始化、其它成员默认 0

#include <stdio.h>
int main()
{int arr3[2][3] = { 1,2 };int arr4[2][3] = { {1},{5,6} };for (int i = 0; i < 2; i++) //行{for (int j = 0; j < 3; j++)  //列{printf("%d ", arr4[i][j]);}printf("\\n");}return 0;
}

 3)初始化成员个数

初始化成员个数时与一维数组不同点:列数不能省略!!!根据列数自动决定行数。

	int arr5[][2] = { {1,2},{3,4},{5,6} };int arr6[][2] = { 1,2,3,4,5,6 };

四、注意事项

不要下标越界使用 

五、循环遍历

二维数组分行和列,行中有列,通过双层循环遍历二维数组。 

#include <stdio.h>
int main()
{int arr[3][4];arr[0][0] = 1;arr[0][3] = 2;arr[2][1] = 3;
for (int i = 0; i < 3; i++) //行{for (int j = 0; j < 4; j++)  //列{printf("%d ", arr[i][j]);}printf("\\n");}printf("\\narr大小:%d arr[0]大小:%d\\n", sizeof(arr), sizeof(arr[0]));int hs = sizeof(arr) / sizeof(arr[0]);        //有几行:数组空间/行空间int ls = sizeof(arr[0]) / sizeof(arr[0][0]);  //有几列:行 总空间/行 单个空间printf("行:%d\\n", hs);printf("列:%d\\n", ls);return 0;
}