在我项目中,我选择使用数组(非动态)。2我想知道如何将一个函数中的二维数组与另一个函数关联起来。我必须在主函数中创建一个数组并引用(然后在其他函数中修改)还是用其他方法?如果是的话,那么我将非常感谢有人告诉我,我已经在许多方面进行了搜索和尝试,但我仍然有错误。祝你有美好的一天,Wiktoria
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
std::array
1条答案
按热度按时间wfsdck301#
有一种特殊的语法可以将C样式数组传递给函数。
请看下面的代码
但基本上应该使用
std::array