一、二维数组的创建
和一维数组类似,加入了“列”。
二、二位数组的初始化
注意:二维数组初始化时;其中“行”可以省略,“列”不可以省略。
三、二维数组的运用
(1)用循环输出一个二维数组,代码如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int arr[][4] = { {1,2},{3,4},{5,6} };
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
输出结果如下
和一维数组类似。
(2)用指针输出二维数组中元素
代码如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int arr[][4] = { {1,2},{3,4},{5,6}};
int* p = &arr[0][0];
for (i = 0; i < 12; i++)
{
printf("%d ", *p);
p++;
}
}
输出结果如下
四、二维数组在内存中的存储
代码如下
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
char arr[][4] = { {1,2},{3,4},{5,6}};
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("&arr[%d][%d]=%p \n ",i,j, &arr[i][j]);
}
}
}
输出结果如下
从以上结果不难看出,二维数组中每行内部和换行之间都是连续存储的而且大小为4字节。