C语言中二维整形数组和二维字符型数组

一、二维整型数组

1.二维数组定义

类型说明符 数组名[行数][列数];

int a[3][4]; //12 int

float a[3][4]; //12 float

2.二维数组的访问

数组名[行下标][列下标];

行下标:0---》行数-1

列下标:0---》列数-1

3.二维数组的初始化

全部初始化:

int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};

int a[][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

注意:

在二维数组有初始化值得情况下,可以省略行数,不能省略列数。

局部初始化:

int a[3][4] = {{1,2}, {5,6,7}, {9}};

int a[3][4] = {1,2,3,4,5,6,7,8};

int a[][4] = {1,2,3,4,5,6,7}; //24

未初始化数据按0存储。

全部初始化为0:

int a[3][4] = {0};

int a[][4] = {0}; //14

int a[2][3] = {{1, 2, 3}, {4, 5, 6}}; sizeof(a); //bytes--->6*4 = 24 sizeof(a[0][0]); //4 sizeof(a[0]); //4*3 = 12 计算行数: sizeof(a)/sizeof(a[0]); //2 ---->行数 计算列数: sizeof(a[0])/sizeof(a[0][0]); //3 --->列数

4.二维数组的存储方式

单一性、有序性、连续性。

二、二维字符型数组

一维字符型数组:保存一个字符串

二维字符型数组:保存多个字符串

1.二维字符型数组定义

char数组名[行数][列数];

char str[3][100]; //sizeof(str) --->3*100 = 300字节

2.二维字符型数组初始化

char str[3][100] = {0}; char str[3][100] = {{"hello"}, {"world"}, {"how"}}; char str[3][100] = {"hello", "world", "how"}; char str[3][100] = {"hello", "world"};

3.二维字符型数组输入输出

char str[3][100] = {0}; for (int i = 0; i < 3; ++i) { gets(str[i]); } for (int i = 0; i < 3; ++i) { puts(str[i]); //printf("%s\n", str[i]); }