数组参数与指针参数分析
思考
为什么C语言中的数组参数会退化为指针?
退化的意义
- C语言中只会以值拷贝的方式传递参数
- 向函数传递数组时:
- 将整个数组拷贝一份传入函数?(X)
- 将数组名看做常量指针传数组首元素地址
C语言以高效作为最初设计目标
- 参数传递的时候如果拷贝整个数组执行效率将大大下降
- 参数位于栈上,太大的数组拷贝将导致栈溢出
二维数组参数
-
二维数组参数同样存在退化的问题
- 二维数组可以看作是—维数组
- 二维数组中的每个元素是一维数组
-
二维数组参数中第一维的参数可以省略
为什么C语言中的数组参数会退化为指针?
C语言以高效作为最初设计目标
二维数组参数同样存在退化的问题
二维数组参数中第一维的参数可以省略