二维数组的引用c++

eqoofvh9  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(164)

在我项目中,我选择使用数组(非动态)。2我想知道如何将一个函数中的二维数组与另一个函数关联起来。
我必须在主函数中创建一个数组并引用(然后在其他函数中修改)还是用其他方法?如果是的话,那么我将非常感谢有人告诉我,我已经在许多方面进行了搜索和尝试,但我仍然有错误。祝你有美好的一天,Wiktoria

wfsdck30

wfsdck301#

有一种特殊的语法可以将C样式数组传递给函数。
请看下面的代码

constexpr size_t NumberOfRows = 3;
constexpr size_t NumberOfColumns = 4;

// Typedef for easier usage
using IntMatrix2d = int[NumberOfRows][NumberOfColumns];

//Solution 1 ------
// Pass by reference
void function1(int(&matrix)[NumberOfRows][NumberOfColumns])  {}

// Pass by pointer
void function2(int(*m)[NumberOfRows][NumberOfColumns])  {}

//Solution 2 ------
// Pass by reference
void function3(IntMatrix2d& matrix) {}

// Pass by pointer 
void function4(IntMatrix2d* matrix) {}

int main()
{
    // Solution 1
    // Handwritten matrix. Dimension is compile time constant
    int matrix1[NumberOfRows][NumberOfColumns];

    // Pass by reference
    function1(matrix1);

    // Pass by pointer
    function2(&matrix1);

    // Solution 2 -----
    IntMatrix2d matrix2;

    // Pass by reference
    function3(matrix2);

    // Pass by pointer
    function4(&matrix2);

    return 0;
}

但基本上应该使用std::array

相关问题