二维数组初始化
int arr[3][4] = {1,2,3,4}
int arr[3][4] = {{1,2},{3,4}}
int arr[ ][4] = {{2,3}, {4,5}}
二维数组在内存中是连续存放的
1.每行元素内是连续的
2.各行之间也是连续存放的
数组名是什么
·数组名是数组首元素的地址(有两个列外)
sizeof(arr) //数组名表示整个数组,计算的是整个数组的长度
&arr //此时数组名表示整个数组,取出的是整个数组的地址
3中数组地址表达方式区别
&arr 表示整个数组的地址,+1跳过的是整个数组
&arr[0]和arr 表示的是数组首元素地址,+1跳过一个元素
#include "stdio.h"
int main(){
int arr[3] = {1,2,3};
printf("%p\n", &arr);
printf("%p\n",&arr+1);
printf("**************\n");
printf("%p\n", &arr[0]);
printf("%p\n",&arr[0]+1);
printf("**************\n");
printf("%p\n", arr);
printf("%p\n",arr+1);
return 0;
}
>>输出:
0x16bcaf798
0x16bcaf7a4
**************
0x16bcaf798
0x16bcaf79c
**************
0x16bcaf798
0x16bcaf79c