我正在尝试让这个简单的程序运行,但由于我是 C++ 的新手,所以我遇到了一些我不明白的错误。我在函数初始化的范围内没有声明,并且在函数头中使用数组时遇到问题。有人可以帮帮我吗?
我的代码如下:
#include <iostream>
#include <string>
using namespace std;
char[][] initialize(char[][]);
int main(){
int array[3][3];
initialize(array);
cout << array[0];
return 0;
}
char[][] initialize(char[][] a){
for(int i = 0; i < a.length(); i++){
for(int j = 0; j < a[].length(); j++){
a[i][j] = '\0';
}
}
return a;
}
最佳答案
您可以通过以下方式将二维数组元素初始化为 \0
:
char array[3][3] = {0};
现在,如果您想将数组传递给函数(例如,print_2d_array()
),并且为了获得二维数组的维度,您需要在以下方式:
template<typename T, std::size_t N, std::size_t M>
void print_2d_array(T (&a)[N][M]){
for(int i = 0; i < N; ++i){
for(int j = 0; j < M; ++j){
std::cout << a[i][j] << " ";
}
std::cout << std::endl;
}
}
上述函数打印任意类型/维度的二维数组。
关于c++ - 在 C++ 中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33222154/