一级指针传参
#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,10};
int* p = arr;
int sz = sizeof(arr)/sizeof(arr[0]);
print(p,sz);//一级指针p,传给参数
return 0;
}
当一个函数的参数部分为一级指针的时候,函数可以接收什么参数——
void test(int* p)
{
}
int main()
{
int a = 10;
int* ptr = &a;
int arr[5];
test(arr);//传递整型一维数组的数组名
test(&a);//传递整型变量的地址
test(ptr);//传递整型指针
}
二级指针传参
#include <stdio.h>
void test(int** ptr)
{
printf("num = %d\n",**ptr);
}
int main()
{
int n = 10;
int* p = &n;
int** pp = &p;
int* arr[6];
test(pp);
test(&p);
test(arr);
return 0;
}