相同数据类型的有序集合
数组元素地址连续数组名为地址,是数组首元素的地址
#define _CRT_SECURE_NO_WARNINGS #includeint main(void) { int arr[] = {10,20,30,40,50,60,70,80,90,100}; printf("arr = %pn", arr); printf("&arr[0] = %pn", &arr[0]); printf("&arr[1] = %pn", &arr[1]); printf("&arr[2] = %pn", &arr[2]); return 0; }
运行结果: arr = 0034F6D8 &arr[0] = 0034F6D8 &arr[1] = 0034F6DC &arr[2] = 0034F6E0数组大小、数组元素大小、数组元素个数
int main03(void) {
int arr[] = { 10,20,30,40,50,60,70,80,90,100 };
printf("数组大小:%un", sizeof(arr));
printf("数组元素大小:%un", sizeof(arr[0]));
printf("数组元素个数:%dn", sizeof(arr) / sizeof(arr[0]));
return 0;
}
数组初始化
int arr0[10] = { 1,2,4 };//剩余未初始化的元素默认为0
int arr1[10] = {0};//将数组元素全部初始化为0
int arr2[10];//数组元素为内存实际值,随机值,可使用下标单个赋值,eg:arr[1]=6
int arr3[] = {1,2,4};//编译器按赋值自动获取数组元素个数
二维数组
一围数组的数组,数组元素是一围数组
- 打印二维数组
int main(void) {
int arr[2][3] = { {2,5,8},{7,9,5} };
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
printf("arr[%d][%d]=%dt", i, j, arr[i][j]);
}
printf("n");
}
return 0;
}
运行结果: arr[0][0]=2 arr[0][1]=5 arr[0][2]=8 arr[1][0]=7 arr[1][1]=9 arr[1][2]=5
- 数组大小、数组一维元素大小、数据元素大小、行数、列数
#define _CRT_SECURE_NO_WARNINGS #includeint main(void) { int arr[2][3] = { {2,5,8},{7,9,5} }; printf("数组大小:%dn", sizeof(arr)); printf("数组一维元素大小:%dn", sizeof(arr[0])); printf("数组元素大小:%dn", sizeof(arr[0][0])); printf("数组行数:%dn", sizeof(arr) / sizeof(arr[0])); printf("数组列数:%dn", sizeof(arr[0]) / sizeof(arr[0][0])); return 0; }
- 数组的地址=数组的首行地址=数组的第一个元素的地址
#define _CRT_SECURE_NO_WARNINGS #includeint main(void) { int arr[2][3] = { {2,5,8},{7,9,5} }; printf("arr:%pn", arr); printf("arr[0]:%pn", arr[0]); printf("&arr[0][0]:%pn", &arr[0][0]); printf("&arr[0][2]:%pn", &arr[0][2]); printf("arr[1]:%pn", arr[1]); return 0; }
运行结果: arr:0026F7A8 arr[0]:0026F7A8 &arr[0][0]:0026F7A8 &arr[0][2]:0026F7B0 arr[1]:0026F7B4
- 初始化
#define _CRT_SECURE_NO_WARNINGS #includeint main(void) { int arr[3][4] = { {2,7},{75,8},{26,37,9} };//未被初始化的数值为0 int arr1[3][4] = {0};//初始化元素全为0的数组 int arr2[][4] = {2,7,75,8,26,37,9};//编译器自动按声明的行列存放元素,一行满了再存下一行 int i, j; int row = sizeof(arr ) / sizeof(arr[0]); int col = sizeof(arr[0]) / sizeof(arr[0][0]); for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { printf("%d ", arr[i][j]); } printf("n"); } printf("====================n"); int row1 = sizeof(arr1) / sizeof(arr1[0]); int col1 = sizeof(arr1[0]) / sizeof(arr1[0][0]); for (i = 0; i < row1; i++) { for (j = 0; j < col1; j++) { printf("%d ", arr1[i][j]); } printf("n"); } printf("====================n"); int row2 = sizeof(arr2) / sizeof(arr2[0]); int col2 = sizeof(arr2[0]) / sizeof(arr2[0][0]); for (i = 0; i < row2; i++) { for ( j = 0; j < col2; j++) { printf("%d ", arr2[i][j]); } printf("n"); } return 0; }
运行结果: 2 7 0 0 75 8 0 0 26 37 9 0 ==================== 0 0 0 0 0 0 0 0 0 0 0 0 ==================== 2 7 75 8 26 37 9 0



