C++中将二维数组作为参数的函数

醉酒当歌 提交于 2020-02-08 13:15:43

将一个二维数组作为参数传递到函数中,函数原型中该参数应定义为(列数为4的int类型二维数组):

int (*a)[4];    //true
int a[][4];     //true
int *a[4];      //false

对上述代码的理解:将[]与前面的类型结合,第一行首先定义了一个指针a,它指向一个有4个int元素的数组,而在另外的博客里我们说过,[]基本可以和*等价,故第二种表示方法也是可以的。而第三行表示的意义则完全不同,它定义了一个包含4个int*类型的数组,即数组中的每一个元素都是一个指向int类型的指针。

由于在定义函数原型的时候,我们在定义表示数组的指针时,已经将二维数组的列数传递给函数了,因此我们只需要将行数作为另一个函数的参数传递即可,函数可以接受任何行数的数组,但只能接受定义时指定了列数的数组。

在这里const要慎用,因为这里已经是间接关系了,容易出现错误,详细的关于const和指针见另一篇博客。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!