1.定义数组杜绝用变量来表示长度。
例如int n; int a[n];
2.数组初始化为0:int a[ ] = {0};或memset(a,0,sizeof(a));
3.一维数组
数组名是指针常量,保存的是数组首元素的地址,不能自加。
&a:对一维数组名取地址等于一维数组的地址
*(&a) = a;:对一维数组的地址取值等于一维数组首元素的地址
a:一维数组首元素的地址
4.二维数组
aa:首个一维数组的地址
*aa:首个一维数组的首元素的地址
&aa:对二维数组名取地址等于二维数组的地址
*(&aa)= aa: 对二维数组的地址取值等于首个一维数组的地址
5.三维数组
*(*(*(a + i) + j) + k);
a + i:第i+1个二维数组的地址
*(a+i):第i+1个二维数组的首个一维数组的地址
*(a+i)+j:第i+1个二维数组的第j+1个一维数组的地址
*(*(a+i)+j):第i+1个二维数组的第j+1个一维数组的首元素的地址
*(*(a+i)+j)+k:第i+1个二维数组的第j+1个一维数组的第k+1个元素的地址
*(*(*(a + i) + j) + k):第i+1个二维数组的第j+1个一维数组的第k+1个元素的值
6.数组指针(在函数传参时使用)
传一维数组名用元素的指针来接
传二维数组名用一维数组指针来接
7.指针数组(要避免野指针)