目录
2.二维数组传参给指针的时候,必须是一个指向数组的指针(test3)
1.一维数组在传参的时候可以传数组和指针
#include<stdio.h>
void test(int arr[])
{}
void test(int arr[10])
{}
void test(int*arr)
{}
void test2(int* arr[20])
{}
void test2(int** arr)
{}
int main()
{
int arr[10] = {0};//数组
int* arr2[20] = {0};//指针数组
test(arr);
test2(arr2);
return 0;
}
2.二维数组传参给指针的时候,必须是一个指向数组的指针(test3)
#include<stdio.h>
void test(int arr[3][5])
{}
void test2(int arr[][5])//只能省略行,不能省略列
{}
void test3(int(*arr)[5])
{}
int main()
{
int arr[3][5] = {0};//二维数组
test(arr);
test2(arr);
test3(arr);
return 0;
}
3.一二级指针传参
可以传本身地址和该级指针。
当函数变量名为二级指针,也可以传一级指针数组
#include<stdio.h>
void print(int* p, int sz)
{
int i = 0;
for (i=0;i<sz;i++)
{
printf("%d\n",*(p+i));
}
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9 };
int* p = arr;
int sz = sizeof(arr) / sizeof(arr[0]);
print(p,sz);//一级指针传参
return 0;
}
void test(int **p)
{}
int main()
{
int* arr[10];
test(arr);
return 0;
}