数组主要是对内存空间的理解。
数组定义:type_t arr_name [const n]。
数组初始化:可以直接把元素全部写进去,也可以不完全初始化,剩下的部分会被0填满,字符数组被'\0'填满(‘\0’的ASCII码值是0)。
数组名:数组名代表着数组第一个元素的地址,可以理解为数组名是一个整形变量,里面存放着数组第一个元素的地址。但是有两个情况需要注意:1.sizeof(arr)。2.&arr。这两个情况都将arr视作整个数组的代表。&arr,取出的数字虽然是首地址,但是代表着是整个数组,&arr+1,则会跳过整个数组的内存,而不是单个元素的内存。
二维数组 int arr[row][col]; row代表行数,col代表列数,二维数组可以视作以一维数组为元素的一维数组。所以row也就是一维数组的数量可以不做定义,但是一维数组的长度col一定要有定义,不然无法划分内存空间。
arr------------->第一行的地址
arr[0]---------->第一行的地址
&arr------------>整个二维数组的地址
sizeof(arr)--->整个二维数组的大小
sizeof(arr[0])->第一个一维数组的大小
sizeof(arr[0][0])-->第一个元素的大小