二维数组
语法: 存储类型 数据类型 数组名[一维长度][二维长度]
数组名[行][列]
二维数组在本质上,是一个一维数组的列表。
数值二维数组
int a[3][4];
列 0 | 列 1 | 列 2 | 列 3 | |
---|---|---|---|---|
行0 | a[0][0] | a[0][1] | a[0][2] | a[0][3] |
行1 | a[1][0] | a[1][1] | a[1][2] | a[1][3] |
行2 | a[2][0] | a[2][1] | a[2][2] | a[2][3] |
a[i][j] i–行 j–列
注意:二维数组在内存中是连续存储的.
1、定义并初始化
int a[2][3]; //只定义
int a[2][3] = {{1, 2, 3},{4, 5, 6}}; //定义并初始化
int a[2][3] = {1, 2, 3, 4, 5, 6}; //与上相同
int a[2][3] = {{1, 2, 3}}; //后续为0
int a[2][3] = {0}; //初始化为0
int a[ ][3] = {{1, 2, 3},{4, 5, 6}}; //a[2][3]
int a[ ][3] = {1, 2, 3, 4, 5, 6}; //a[2][3]
int a[ ][3] = {1, 2, 3, 4}; //a[2][3],后续为0
只允许省略行,而不允许省略列;
2、定义然后赋值
int a[2][3];
a[0][0] = 1;
a[0][1] = 2;
a[0][2] = 3;
a[1][0] = 4;
a[1][1] = 5;
a[1][2] = 6;
给a[2][3]赋值并输出
二维数组名
是第0行的首地址,虽然与&a[0][0]一样,当性质不同,与a[0]一样
字符二维数组
char str[3][10] = {“hello”,“world”,“chinese”};
str[0] = “hello”;
str[1] = “world”;
str[2] = “chinese”;
char str[3][10] = {{‘h’,‘e’,‘l’,‘l’,‘o’},{…},{…}};
char str[3][10] =
练习
定义一个二维数组
int arr[15][15] = {0};
将数组打印:15*15
接受用户输入的指定坐标,将数组对应位置写为1,再打印,无限循环。