【发布时间】:2018-12-19 09:23:58
【问题描述】:
您好,我的任务是创建一个填充数组的函数,在 main() 中创建,然后在另一个函数中使用该数组,我应该用它进行一些计算。我已经有一些代码,你能帮我怎么做吗?提前谢谢你
#include <iostream>;
using namespace std;
int* modArray(int* a, int size) {
for (int i = 0; i < size ; i++) {
a[i] = i;
}
return a;
}
int modAddition() {} // This is the function, where I want to use, the "a" array
int main() {
int size = 7;
int* a = new int[size];
a = modArray(a, size);
system("pause");
return 0;
}
【问题讨论】:
-
“怎么做” 做什么怎么做?您的代码似乎已经将数组传递给函数。
-
另请注意,在这种情况下您不需要返回
int *。您可以将返回类型更改为void,删除return a;并将a = modArray(a, size);替换为modArray(a, size);,而不会改变行为。 -
你已经用
modArray完成了,用modAddition做同样的事情 -
好吧,谢谢你的帮助,我认为当我在 main 中有一个数组时,它是一个本地的,我不能在另一个函数中使用它,只需输入 int* a,因为它是要做一个新数组。我还是个初学者,所以让我很困惑。
-
您在输入
new int[size]时创建了数组。而int* a =只是做了一个指针。该指针将指向数组的第一个元素,即使您将它传递给函数,它也会一直指向那里。数组本身将一直存在,直到您调用delete[]并传递一个指向数组的指针。在那之前,如果你有一个指向数组的指针或引用,你可以在任何函数中使用它。