一维数组传参
void test(int arr[])
{
};
void test(int arr[10])
{
}
void test(int *arr)
{
}
void test2(int *arr[10])
{
}
void test2(int *arr[])
{
}
void test2(int **arr) //arr2是数组名,是个地址,其表示首元素的地址,而首元素也是个指针,所以其是二级指针
{
}
int main()
{
int arr[10] = {0};
int *arr2[10] = {0};
test(arr);
test2(arr2);
}
二维数组传参
void test(int arr[3][5])
{
}
void test(int arr[][5])
{
}
//void test(int arr[][]) //此方式是错误的,二维数组的行可以省略,但是列是不能省略的
//{
//}
void test(int (*arr)[5]) //数组指针
{
}
int main()
{
int arr[3][5] = {0};
test(arr);
}
备注:以上代码中的多个test重名只是为了表达传参的各种方式,而不会执行代码,如果执行代码,函数名是不能重名的。