C语言指针传参详解:一级指针与二级指针

目录

一级指针传参:

函数定义:

主函数示例:

参数说明:

二级指针传参:

函数定义:

主函数示例:

参数说明:

总结:


一级指针传参:

函数定义:

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)

总结:

  • 一级指针传参用于处理一维数组,函数可以接收指向数组首元素的指针。
  • 二级指针传参用于处理指向指针的指针,适用于存储一级指针的数组等情况。

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

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普通young man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值