数组和指针参数是如何被编译器修改的

本文探讨了C语言中数组与指针的关系,包括如何通过指针传递多维数组给函数、如何从函数返回数组及如何创建动态数组等问题。文章还分析了C语言在处理多维数组方面的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组的数组会被修改成为“数组的指针”,而不是“指针的指针”


实参 所匹配的形式参数

数组的数组 char c[8][10] <—> char (*)[10] 数组指针
指针数组 char *c[15] <—> char **c 指针的指针
数组指针 char (*c)[64] <—> char (*c)[64] 不改变
指针的指针 char **c <—> char **c 不改变


二维数组被改写为 指向数组第一行的指针

对多维数组作为参数传递的支持缺乏是C语言存在的一个内在限制,这使得使用C语言编写某些特定类型的程序非常困难(例如,数值分析算法)


  • C语言几点值得思考的问题:

如何使用指针向函数传递一个多维数组?
如何使用指针从函数返回一个数组?
如何使用指针创建和使用动态数组?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值