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

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

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

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

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

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

发布了3 篇原创文章 · 获赞 0 · 访问量 322

猜你喜欢

转载自blog.csdn.net/Nemoosi/article/details/104219612