16.数组的使用
1.一维数组
2.定义数组类型
a.数组类型 :由元素个数,和元素对应int [n];
b.通过typedf定义一个数组类型;
c.有typedef是类型,没有是变量;
typdef int A[3]; //代表数组类型 A b; //int b[3], 去掉了typedef,b替换A的位置
3.数组指针&指针数组
指针数组:它是数组,每个元素都是指针;
数组指针:它是指针,指向一个数组的指针;
typedef int A[10]; //A数组类型 A *p = NULL; //p数组指针类型变量 p = a; //a代表首元素地址,a和&a一样,最终也是当做&a, p = &a //&a代表整个数组首地址
4.argc\argv
argc:传参的个数,(包含可执行程序);
argv:指针数组,指向输入参数;
5.二维数组
二维数组代表第0行首地址(区别于第0行首元素地址,虽然值一样),步长不一样
int a[][4] = {0};
a:代表第0行首地址;
a+i等价于&a[i]:代表第i行首地址;
*(a+i)等价于a[i]:代表第i行首元素地址;
*(a+i)+j == &a[i][j]:第i行第j列元素的地址;
*(*(a+i)+j) == a[i][j]:第i行第j列元素的值;
6.二位数组做形参
void fun(int a[3][4]); void fun(int a[][4]); void fun(int (*a)[4]); //数组指针