我正在研究一个做矩阵数学的程序。幸运的是,代码逻辑不是给我错误的东西。
我使用以下代码输出存储在二维数组中的矩阵:
void ouputMatrix(char arr[], int matrixRows, int matrixColumns) {
for (int a=0; a<matrixRows; a++) {
for (int i=0; i<matrixColumns; i++) {
cout << arr[a][i] << " ";
}
cout << endl;
}
cout << endl;
}
但是,当我尝试编译此代码时,我被告知:
“在函数中'void outputMatrix(char *,int,int)': [错误]数组下标的类型'char [int]'无效。
错误类型告诉我,我遗漏了一些关于c ++数组语法或类似内容的明显内容,但我无法弄明白。我做错了什么?
答案 0 :(得分:1)
如果您尝试将1-D数组传递给这样的函数,那么它完美无缺,但是如果您尝试传递2-D数组,那么您需要使用其有效语法传递数组,不像1-D
即。 return_type function_name(dataType arrayName[100],int size)
如果你也可以将下标'[]'留作1-D数组的空白,
但对于二维数组,它将是
return_type function_name(dataType arrayName[100][100],int rowSize,int colSize)
但是你也可以将下标'[]'留空,但只有1st []和2nd必须包含一些值。 实际上,你在第二个下标中传递了什么值并不重要,但是必须有一些值,只需传递你的二维数组不会超过的值。
对于数组的更多维度,语法将继续这样。 希望这对你有用。
答案 1 :(得分:0)
问题在于我试图将多维数组传递给函数,但使用与1-d数组相同的语法。由于数组的大小为100(根据我的问题,你可以知道的事情,对不起......)正确的传递方式是:
void ouputMatrix(char arr[][100], int matrixRows, int matrixColumns);