二维数组作为参数时,其数组名被视为其地址,因此和一维数组一样,其相应的形参是一个指针。
如果将二维数组作为参数传递给函数,那么在函数的参数声明中必须指明数组的列数,数组的行数没有太大关系,可以指定也可以不指定。因为函数调用时传递的是一个指针,它指向由行向量够成的一维数组。
二维数组作为函数参数的格式:
假如我们有一个二维数组data
data是一个数组名,该数组有三个元素,每一个元素为一个数组。因此我们的声明将声明指针指向含四个int元素的数组,如:
其中参数size指定二维数组的行数。
注意arr必须要用括号括起来,因为[]的优先级比*的优先级高 。
而不是声明指针分别指向数组中的四个int元素,如:
当然还有另一种可行的格式:
了解了二维数组作为函数参数的格式 ,我们在函数中调用一下这个二维数组吧:
这里与一维数组一样,虽然我们传入的是数组的指针,但是我们同样可以用正常数组的方式访问其元素,而不需要解引用。当然,不考虑难看的话,也可以解引用,但是需要连续解引用两次:
在调用的时候我们只需要将数组名传进入即可:
参考资料:
C++ Prime Plus