1、数组和函数之间的关系
1)数组元素作为函数的实参
int a[4]={1,2,3,4};
//比较数组第一个元素和最后一个元素,它们的大小关系
max(a[0],a[3]); //数组元素作为函数的实参
实质:
把数组元素的值取出来,赋值给函数形参(值传递)
2)数组名作为函数的实参
//用数组名作为函数的实参,函数的形参也必须是一个数组
//写一个函数实现,把数组的最后一个元素设置0
void change(int b[4]);
change(a); //a数组名是常量 地址
//代表的一块内存空间
int b[4]; //b存放的时数组b的首地址
实质:b = a; //b存放的a的地址 (地址传递)
3)数组名作为函数的参数的注意事项
1)用一维数组名作为函数的形式参数,可以不指定数组长度
int a[3]={1,2,3};
change(a);
void change(int a[]);
2)函数的形参数组类型要和实参数组类型要一直
int a[3]={1,2,3};
change(a);
void change(float a[]) (X)
3) 实参的长度可以和形参数组长度不一致
int a[3]={1,2,3};
change(a);
void change(int a[2]); //可以的
4)数组名作为函数的参数,会丢失数组的长度信息 |
|