Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

C++ 函数与二维数组

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

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是指向指针的指针。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 【总结】职业规划和自我总结----------包含职业要求

下一篇: dolphinscheduler在window环境下单机编译+部署

精华推荐