众所周知,函数参数中一维数组的长度会被忽略的,但二维数组的第二维度就会被要求指定长度(否则gcc会报告“数组元素的类型不完全”)。这很好理解,它是为了让函数知道矩阵的宽度。同理,三维数组就会被要求指定第二维度和第三维度的长度,所以n维数组只有第一维度的长度会被忽略。那么对于C++而言,如何将多维数组作为参数向函数中进行传递呢?本文就为大家总结一下C++多维数组作为函数参数的几种方式。
函数原型:正确例(有不妥,非错误)
直接传递元素个数也不妥当,只能处理固定元素个数的数组,应用场合十分受限
void PrintTwoDimensinalArray( int a[8][8], unsigned int m, unsigned int n );
函数原型:错误例
不能每维都不传递元素个数,语法规则不允许
void PrintTwoDimensinalArray( int a[][], unsigned int m, unsigned int n );
函数原型:正确例(有不妥,非错误)
a 为指向数组基地址的整数指针,m 为第一维元素个数,n 为第二维元素个数,函数内部使用指针运算访问某个元素