二维数组
把一维数组作为数组的元素,这样的数组称为二维数组。同理,把二维数组作为元素的称为三维数组。
语法
//type arr_name[常量值1][常量值2];
常量值1代表数组有几行;常量值2代表一行有几个元素。
初始化
//不完全初始化
//int arr1[2][3]={1,2};
//完全初始化
//int arr2[2][3]={1,2,3,4,5,6};
//按照行初始化
//int arr3[3][4]={{1,2},{2,3},{5,2}};
//初始化时省略行,但不能省略列号
//int arr4[][5]={1,2,3,4,5,6}; 2行
访问
C语言规定,二维数组的行与列均从0开始。
//访问单个元素
//int arr[3][5]={0};
//printf("%d",arr[2][4]);
访问整个二维数组,我们只需按照一定的规律产生所有的行和列的数字即可。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int arr[3][5] = {0};
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
scanf("%d",&arr[i][j]);
}
}
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
printf("%d",arr[i][j]);
}
return 0;
}
二维数组在内存中的存储
每一行内部的每个元素都是相邻的,地址之间相差4个字节,跨行位置处的两个元素之间也是4个字节,即二维数组中的每个元素都是连续存放的。