一级指针传参
传一维数组
#include<stdio.h>
#include<stdlib.h>
int point(int* arr)
{
for (int i = 0; i <= 3; ++i)
{
printf("%d\t", arr[i]);
}
}
int main()
{
int arr[] = { 1, 2, 3, 3 };
point(arr);//数组名指向数组第一个元素的地址,可以作为指针直接传递
system("pause");
}
传指针
#include<stdio.h>
#include<stdlib.h>
int point(int* arr)
{
for (int i = 0; i <= 3; ++i)
{
printf("%d\t", arr[i]);
}
}
int main()
{
int arr[] = { 1, 2, 3, 3 };
point(&arr);//传指针
system("pause");
}
二级指针传参
#include<stdio.h>
#include<stdlib.h>
int point(int** ptr)//参数为二级指针
{
**ptr = 40;
printf("%d\n", **ptr);
}
int main()
{
int a = 10;
int p = &a;
//int* ptr = &p;//也可以用这种方式定义
int** ptr = &p;//定义二级指针
point(ptr);//传递二级指针
system("pause");
}