数组参数与指针参数分析

思考

为什么C语言中的数组参数会退化为指针?

退化的意义

  • C语言中只会以值拷贝的方式传递参数
  • 向函数传递数组时:
    • 将整个数组拷贝一份传入函数?(X)
    • 将数组名看做常量指针传数组首元素地址

C语言以高效作为最初设计目标

  • 参数传递的时候如果拷贝整个数组执行效率将大大下降
  • 参数位于栈上,太大的数组拷贝将导致栈溢出

二维数组参数

  • 二维数组参数同样存在退化的问题
    • 二维数组可以看作是—维数组
    • 二维数组中的每个元素是一维数组
  • 二维数组参数中第一维的参数可以省略

等效关系

猜你喜欢

转载自www.cnblogs.com/yanyun888/p/9213218.html