文章目录
一、一维数组形参退化
二、二维数组形参退化
三、数组形参等价关系
一、一维数组形参退化
----
C 中将 一维数组 作为参数 , 传递到函数中 , 该 一维数组 会退化为 指针 ;
将
int...数组时 , 不知道该数组的元素个数 , 编译器只能确认 , 该参数是一个 int * 指针类型 ;
这样操作是为了提高 编译器 的效率 , 提高程序执行的效率 , 函数的 形参 最终要拷贝到 栈内存...中 ,
如果将整个数组作为形参 , 需要拷贝整个数组的内容 , 如果数组有
1000
个元素 , 需要拷贝
4000
字节 , 这样效率就很低了 ;
如果只需要拷贝数组地址 , 这个地址存放在指针变量中...看作 一维数组 ,
一维数组 中每个元素是 实际的数据 ,
二维数组 中每个元素是 一维数组 ;
一维数组 退化时 , 退化为 指向 一维数组元素 的 指针 ;
二维数组 退化时 , 退化为 指向 二维数组元素...也是 指针 , 则形参为 二级指针 ;
实参为 二维数组 int array[10][20] , 等效的 形参为 一级指针 int (*array)[20] ;
二维数组 的 数组的元素 是 一维数组