创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
目录
二维数组是对一维数组的延申,学习二维数组前需要对一维数组的知识理解哦~
一维数组知识:
一维数组详解https://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;
}