我不确定为什么代码没有运行,它在编译时抛出错误,说它无法找到 PrintArray()


int main()
{
const char arr[][5] = {{ 'H','u','g','o','' },{'h','i'}};
printArray(arr, 2, 5);
}
void printArray(const char arr[], int size)
{
for(int i=0;i<size;i++)
{
cout << arr[i];
}
cout << endl;
}
void printArray(const char arr[][SIZE], int rows, int cols)
{   char temp[cols];
for(int i=0;i<rows;i++)
{char temp[cols];
for(int j=0;j<cols;j++)
{
temp[j]=arr[i][j];
}
printArray(temp,cols);
}
}

该代码旨在逐行打印二维数组。它应该使printArray();超载

不知道为什么它不起作用,一切似乎都很好。

错误消息:没有匹配的函数调用"打印数组"在此行打印数组(arr, 2, 5(;

您可能面临编译器C++行为,即声明顺序。 基本上,您的main()函数尝试调用尚未定义的printArray函数。通过对定义重新排序,函数调用将起作用:https://onlinegdb.com/r1jMt9d0r。

void printArray(const char arr[], int size)
{
for(int i=0;i<size;i++)
{
cout << arr[i];
}
cout << endl;
}
void printArray(const char arr[][SIZE], int rows, int cols)
{   char temp[cols];
for(int i=0;i<rows;i++)
{char temp[cols];
for(int j=0;j<cols;j++)
{
temp[j]=arr[i][j];
}
printArray(temp,cols);
}
}
int main()
{
const char arr[][5] = {{ 'H','u','g','o','' },{'h','i'}};
printArray(arr, 2, 5);
}

这个问题实际上已经被问过了,但你可能无法搜索到解决方案。

相关内容

最新更新