一维数组传参问题
1、数组传参,是要发生降维的,降维成指针。
2、为什么要降维?
原因是如果不降维,每一次数组传参的时候,因为传参传的是变量,所以要发生数组拷贝,如果是一个超级大的数组,那么函数调用的效率就会降低,所以要降维成指针。
3、所有的数组,传参都会降维成指针,降维成为指向其内部元素类型的指针!
4、在C语言当中,只要有形参实例化,必定形成临时拷贝!!!
5、由于传参之后的 int arr[ ]已经是一个指针了,所以[ ]里面的值已经是没有意义的,所以可写可省略。
6、C语言是面向过程的语言,函数是核心的概念,会经常定义与调用函数,传参,数组,数组传参,为了提高效率,所以要发生降维,降维成指针。
7、所以指针和数组访问元素的方式是通用的,假设它两不通用,程序员就需要不断从不同的代码片段处,进行习惯的切换,久而久之,人总是会犯错的,所以代码出错的概率就会大大地增加了。为了让程序员统一使用数组,减少出错的概率,数组和指针的访问方式就被设计成通用的。