数组

来源:互联网 发布:杭州贰贰网络怎么样 编辑:程序博客网 时间:2024/06/17 19:52

数组的类型由元素类型和数组大小共同决定

定义数组类型:typedef type(name)[size];

数组指针:type (*pointer)[n];
指针数组: type* pArray[n];//type*是数组中每个元素的类型

一维数组名代表数组首元素的地址
int a[5]; a的类型为int*
二维数组名同样代表数组首元素的地址
int m[2][5]; m的类型为int(*)[5];

二维数组的每个元素都是同类型的一维数组

c语言只会以值拷贝的方式传递参数
- 将整个数组拷贝一份传入函数;// 执行效率大大下降,参数位于栈上,太大的数组拷贝将导致栈溢出
因此,当向函数传递数组时,将数组名看做常量指针传数组首元素地址

二维数组参数同样存在退化问题

    void f(int a[5]);== void f(int *a);    void f(int b[3][3]);== void f(int (*b)[5])//数组指针sizeof(b)==4;sizeof(*b)=20;

多维数组必须提供第一维之外的所有维长度,用于完成指针运算
N维数组的本质是一维数组,元素是N-1维的数组
对于多维数组的函数参数只有第一维式可变的

原创粉丝点击