给函数传递二维数组指针

很多时候,函数的形参很容易定义为指针的指针形式(如:int **number),这样可用来表示指向整型指针的指针,但我们传递的可是一个二维数组,其指针该是指向整型数组的指针。这就是容易出现模糊的点。

那如果形参形式是(int **number)这种形式也是有其优点的,从例子中来说明:

先定义实参:

int input[2][2] = {1,2,3,4};

int **p1 = new int*[2];
for(int i=0;i < 2;++i)
{
     p1[i] = input[i];
}
delete p1;

这时候我们就将p1做实参传递便可,当我们需要传递什么样的数据时,之后对p1的大小做修改就可以了,这样的灵活型比接下来要将的定义形式要方便得多。

方法2:
修改形参格式,可只传input二维数组名。

如我要传递的input[2][2],那么需要写的形参可为int (*A)[2],注意这里的()不能遗漏,因为[]的优先级大于*,便会变成指向整型指针的指针。这里说的灵活性在于你需要把数组指针的大小定义死。不便于针对多情况做操作。

方法3:int(*A)[2],也可写为:A[][2]。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值