C++ 函数与二维数组

本文探讨了在C++中如何将二维数组作为函数参数,指出数组名被视为地址,形参应为指针。强调了int *arr[4]表示4个int指针数组,而非4个int的数组指针,并解释了在函数参数中指针类型指定数组列数。同时,指出了使用const关键字在声明形参arr时的不适用性。
摘要由CSDN通过智能技术生成

将二维数组作为参数的函数,数组名被视为地址,所以形参就应该是一个指针。

sum(int arr[][4],int size);

sum(int (*arr)[4],int size);

以上这两种表示方式是相同

int *arr[4]
表示的是由4个指向int的指针组成的数组,而不是由一个指向4个int组成的数组的指针。因此括号是很必要的。
同样我们能看出,arr都是指针而非数组,是由4个int组成的数组。
函数参数中的指针类型指定了数组的列数,因此sum()函数只能接受由4列组成的数组,但是长度却是任意的。

因此在传递参数时候,如下形式是非法的:
sum(int (*arr)[4],int size);

同样的,如下形式是等价的
arr[r][c] = * ( *(arr+r)+c)

最后,在函数声明形参arr时不能用const关键字,因为arr是指向指针的指针。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值