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]);    //数组指针 

 

posted @ 2019-01-20 17:17  西贡小傻  Views(127)  Comments(0Edit  收藏  举报