一维数组作为函数参数;
# include <stdio.h>
arr1(int arr[])//第一种方法,直接是数组类型,方括中可以不写个数,因为没有意义;
(int *p)// 第二种方法,是定义指针类型
因为一维数组名,是一维数组中首元素的地址。例如这行代码,他的每一个元素是int型,所以应该int*类型的指针。
{
}
int main(){
int arr[10]={0};
arr1(arr);
return 0;
}
二维数组作为函数参数;
# include <stdio.h>
arr2(int arr[][5])//第一种方法也是直接定义二维数组类型,列行必须有数字。
(int(*p)[5])//第二种方法是定义一个数组指针。
因为二维数组名,表示第一行的地址,也就是一个一维数组。
{
}
int main(){
int arr[3][5]={0};
arr2(arr);
return 0;
}
3.指针数组传参
以此类推,第一种方法亦可以设置一个指针数组,作为函数参数类型。
第二种方法就是用二级指针,也就是指针的指针。因为指针数组中的首元素是一个指针,我们要得到一个指针的地址,那么,这个指针就是二级指针。
方法如上,遇到各种相似类型的问题都可以解决。