数组和指针传参
一维数组传参
int arr[10] = {0};
test(arr); //实参传递的是数组的首元素首地址
//形参写成数组的形式
void test(int brr1[10]) //方法一
void test(int brr1[]) //方法二,形参部分可以省略数组大小。
void test(int brr1[100]) //方法三,也可以将数组大小写得很大,但是不建议
//形参的[]中的数字并没有意义
//int brr1[],变量brr1就是int* 类型,实际形参还是个指针,跟下面的指针形参是一样的。
//形参写成指针的形式
void test(int *p1);
指针数组传参
int* arr2[10] = {0};
test2(arr2); //arr2是二重指针类型int**。
void test2(int* brr2[10]);
void test2(int* brr2[]);
void test2(int** p2); //形参为二重指针
二维数组传参
int arr3[3][5] = {0};
test3(arr3); //arr3是int(*)[5]类型,即一维数组指针类型,传递的是第一行数组的地址
void test3(int brr3[3][5]);
void test3(int brr3[][5]); //行可以不写,但是列必须写对。
void test3(int (*p3)[5]); //注意这个[]的5必须写
//形参为指针形式时,类型也要为数组指针类型int(*)[5]
test3(&arr); //传递的是整个二维数组的地址,int(*)[3][5]类型,即二维数组指针类型。
void test3(int(*p)[3][5]);
一重指针传参
int arr4[10] = {1,2,3,4,5,6,7,8,9,10};
int* p4 = arr; //p4指向 数组首元素1的地址。
test(p4);
void test(int* ptr); //形参为指针形式,传递一重指针。int arr4[10] = {1,2,3,4,5,6,7,8,9,10};
int* p4 = arr; //p4指向 数组首元素1的地址。
test(p4);
void test(int* ptr); //形参为指针形式,传递一重指针。
二重指针传参
int a = 10;
int* pa = &a;
int** ppa = &pa;
test5(ppa); //实参为二重指针
void test5(int** ptr); //形参也要为二重指针
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。