目录
一级指针传参:
函数定义:
void printf1(int *p, int sz)
{ for (int i = 0; i < sz; i++) {
printf("%d ", *(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]);
printf1(p, sz); return 0;
}
参数说明:
- 函数
printf1
接收一个一级指针(int* p
)和一个整数(数组大小int sz
)作为参数。 - 通过指针
p
遍历数组,并打印数组元素。
二级指针传参:
函数定义:
void print1(int **pp) {
printf("%d ", **pp);
}
主函数示例:
int main() { int n = 10;
int* p = &n;
int** pp = &p;
int* arr[10];
print1(pp);
print1(&p);
print1(arr); // 存放一级指针的数组
return 0;
}
参数说明:
- 函数
print1
接收一个二级指针(int** pp
)作为参数。 - 主函数中创建了一个整数
n
,一个一级指针p
,一个二级指针pp
,以及一个存放一级指针的数组arr
。 - 函数调用示例:
print1(pp)
,print1(&p)
,print1(arr)
。
总结:
- 一级指针传参用于处理一维数组,函数可以接收指向数组首元素的指针。
- 二级指针传参用于处理指向指针的指针,适用于存储一级指针的数组等情况。
通过理解指针传参的不同方式,程序员能够更灵活地处理各种数据结构,提高代码的可维护性和可扩展性。选择正确的指针级别传递参数有助于更好地设计和组织代码。