提问人:Wiktoria 提问时间:12/17/2022 更新时间:12/17/2022 访问量:62
对二维数组 c++ 的引用
Reference to two dimensional arrays c++
问:
在我的项目中,我选择使用数组(不是动态的)。我想知道如何与一个函数中另一个函数中的二维数组相关联。
我是否必须在 main 函数中创建一个数组并引用(然后在其他函数中修改)还是以其他方式进行?如果是,那么我真的很感激有人向我展示,我一直在以多种方式进行搜索和尝试,但我仍然有错误。 祝你有美好的一天, Wiktoria
答:
0赞
A M
12/17/2022
#1
有一种特殊的语法可以将 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
std::array
std::array
return