1.二维数组的创建和初始化
(1)二维数组的创建
int arr[3][4];
char arr[3][5];
double arr[2][4];
(2)二维数组的初始化
int arr[3][4]={1,2,3,4};
int arr[3][5]={{1,2},{4,5}};
int arr[][4]={{2,3},{1,2}};
2.二维数组的使用
#include <stdio.h>
int main() {
// 打印二维数组
int arr[3][5] = { {2,4,6},{1,3,5} };
// 获取行数
int rows = sizeof(arr) / sizeof(arr[0]);
// 获取每一行中元素的个数
int cells = sizeof(arr[0]) / sizeof(arr[0][0]);
for (int i = 0; i < rows; i++) { // 遍历行
for (int j = 0; j < cells; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
3.二维数组在内存中的存储
#include <stdio.h>
int main() {
// 打印二维数组
int arr[3][5] = { {2,4,6},{1,3,5} };
// 获取行数
int rows = sizeof(arr) / sizeof(arr[0]);
// 获取每一行中元素的个数
int cells = sizeof(arr[0]) / sizeof(arr[0][0]);
for (int i = 0; i < rows; i++) { // 遍历行
int* temp = arr[i];
printf("%p\n", temp);
for (int j = 0; j < cells; j++) {
printf("%p ", &temp[j]);
}
printf("\n");
}
}
得出结论:二维数组在内存中的存储也是连续的。