目录
二、尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式
一.、基本概念
- 1.数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是: (1)不允许拷贝数组(2)使用数组时将其转换成指针
- 2.因不能拷贝数组,所以我们无法以值传递的方式使用数组参数(因为数组会被转换成指针,所有当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针
二、尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式
void print(const int*)
void print(const int [])
void print(const int[10])
以上三个函数等价,每个函数的唯一形参都是const int*类型的
代码举例:
int fun(double x[10])和int fun(double *)等价
当编译器处理对print函数的调用时,只检查传入的参数是否是const int*类型
int i=0,j[2]={0,1};
print(&i);//正确:&i的类型是int *
print(j);//正确:j转换成int *并指向j[0]
注意:如果传给print函数的是一个数组,则实参自动转换成指向数组首元素的指针,数组的大
小对函数的调用没有影响