c++ - 在 C++ 中使用数组

标签 c++ arrays function multidimensional-array

我正在尝试让这个简单的程序运行,但由于我是 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/

相关文章:

c++ - 在没有值初始化的情况下制作数组类型的 std::unique_ptr 的推荐方法?

java - Java 中的数组与命令行

arrays - 将数组中矩阵的每个切片除以它自己的向量?

javascript - 从对象的内联函数中访问 this

c++ - .mm 测试文件的 OCMock 3.0.2 链接器错误

c++ - 生成两个随机数,使一个总是大于另一个

python - 如何在 C++ 中包含多语言开发头文件

java - 添加第二列与第一列中的重复元素

c - C 中以字符串作为返回类型的函数

php - fatal error : Call to a member function prepare() on integer