怎么样使用指针向函数传递一个多维数组

二级数组传递参数时,不能以一个二级指针的方式,以二级指针的方式只传递了这个二级数组的首地址,但没有带出这个二维数组各元素的地址,编译器不能通过二级指针的移动寻找其元素。对于二级数组要用数组指针的形式传参

二维数组或是跟多维数组无法在C语言中做一般形式的参数。所以你就无法向函数传递一个普通的多维数组,可以向函数传递事先确定的长度的数组,但这个方法并不能满足一般情况,最显而易见的方法是声明一个像下面这样的原型:

方法1:my_function(int  my_arry[10][20]);

 

方法2:my_function(int (* my_arry)[20])   或是 my_function(int  my_arry[][20]);

 

如果要以二级指针的形式传参,可以在定义为字符串指针数组的形式
方法3:

可以采用放弃二维数组,把他的结构改为一个Iliffe向量,也就是说创建一个一位数组,数组中的元素师窒息那个其他东西的指针,

回想一下main() 函数中经常看到 char* arg[]; 但是有时我们也能看到 char**argv.这样的形式,他能提醒我们怎样分析这个声明,

可以简单的传递一个指向数组参数的第一个元素的指针 如下所示:

 

      my_function(char **argv)

注意只有把二维数组改为一个指向向量的指针数组的前提下才可以这样做!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值