二维数组定义语法
定义语法:
int arr[2][3]=
{
{2, 5, 8},
{7, 9 10}
};
int arr[3][5] = {{2, 3, 54, 56, 7 }, {2, 67, 4, 35, 9}, {1, 4, 16, 3, 78}};
大小:
数组大小: sizeof(arr);
一行大小: sizeof (arr[0]): 二维数组的一行,就是一个一维数组。
一个元素大小:sizeof (arr[0][0]) 单位:字节
行数:row = sizeof(arr)/ sizeof(arr[0])
列数:col = sizeof(arr[0])/ sizeof(arr[0][0])
地址合一:
printf("%p\n", arr); == printf("%p\n", &arr[0][0]); == printf("%p\n", arr[0]);
数组的首地址 == 数组的首元素地址 == 数组的首行地址。
代码验证:
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <time.h>int main(){int arr[3][4] = {{2, 7, 8, 5},{75, 8, 9, 8},{26, 37, 99, 9} };for (int i = 0; i < 3; i++)//行{for (int j = 0; j < 4; j++) //列{printf("%d ", arr[i][j]);}printf("\n");}printf("数组的大小为:%u\n", sizeof(arr));printf("数组行的大小:%u\n", sizeof(arr[0]));printf("数组一个元素的大小:%u\n", sizeof(arr[0][0]));printf("行数=总大小/一行大小:%d\n", sizeof(arr) / sizeof(arr[0]));printf("列数=行大小/一个元素大小:%d\n", sizeof(arr[0]) / sizeof(arr[0][0]));printf("arr= %p\n", arr);printf("&arr[0] = %p\n", &arr[0][0]);printf("arr[0] = %p\n", arr[0]);}