1、传参规则
- 当二级指针作为函数形参时,能作为函数实参的是二级指针,指针数组,一级指针的地址
- 当数组指针作为函数形参时,能作为函数实参的是二维数组,数组指针
- 当二维数组作为函数形参时,能作为函数实参的是二维数组,数组指针
- 当指针数组作为函数形参时,能作为函数实参的是指针数组,二级指针,一级指针的地址
2、实例验证:
#include <stdio.h>
#include <stdlib.h>
void fun1(int **pp)
{
printf("fun1\n");
}
void fun2(int(*a_p)[5])
{
printf("fun2\n");
}
void fun3(int t_d_a[][5])
{
printf("fun3\n");
}
void fun4(int *p_a[5])
{
printf("fun4\n");
}
int main()
{
int *p_a[5];
int **pp = NULL;
int *p = NULL;
int t_d_a[5][5];
int a[5];
int(*a_p)[5] = &a;
fun1(p_a);
fun1(pp);
fun1(&p);
printf("\n");
fun2(t_d_a);
fun2(a_p);
printf("\n");
fun3(t_d_a);
fun3(a_p);
printf("\n");
fun4(p_a);
fun4(pp);
fun4(&p);
printf("\n");
return 0;
}