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)
。通过理解指针传参的不同方式,程序员能够更灵活地处理各种数据结构,提高代码的可维护性和可扩展性。选择正确的指针级别传递参数有助于更好地设计和组织代码。