gpt4 book ai didi

c++ - 如何将 3D 数组作为参数传递给函数 C++?还需要将全局变量传递给函数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:09 24 4
gpt4 key购买 nike

所以我有几个问题。首先,我如何将 3D 数组传递给函数。我需要传递整个数组,因为函数是运行一个循环以将数组的内容输出到一个文件。这是我目前拥有的

int array[5][3][3]
void function(int a[5][3][3])
{
//...
}
void function(array); //or void function(array[5][3][3]);

我找到了一种使用指向数组的指针使其工作的方法,但是我已经问过我的老师,他不希望我们使用指针。

我的第二个问题是,如果我打算在函数内部修改一个全局变量,我不需要将它传递给函数吗?我可以像在 main 中一样在函数中使用它吗?

我现在遇到的另一个问题是将数组中的单个值传递给函数。

在一个循环中,我需要从数组[i][j][2] 中提取一个值(i 和 j 是外循环和内循环的索引)并将它传递给一个函数来评估它是否是大于 90。这是针对学校作业的,因此请理解我必须满足某些规范。 (就像不使用指针,传递整个数组,传递数组中的一个值一样,因为作为一个类我们还没有学会如何使用指针)

最佳答案

您的代码是正确的,但实际上在 C++(或 C)中没有数组参数这样的东西。编译器会默默地将您的代码转换为等效的指针类型,即

int array[5][3][3];

void function(int (*a)[3][3])
{
...
}

所以虽然你的教授告诉你不要使用指针,但实际上你无法避免它们,因为在 C++ 中确实没有数组类型参数这样的东西。

第二个问题,全局变量的唯一意义在于你可以在任何地方引用它们,所以不需要将它们作为参数传递。

关于c++ - 如何将 3D 数组作为参数传递给函数 C++?还需要将全局变量传递给函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com