在C ++中的函数中使用数组

时间:2018-02-08 21:13:13

标签: c++ arrays

我是一名正在为C ++做作业的学生,​​我遇到了一些我不熟悉的事情。我有一个int数组,没有大小,但有一个数字列表。在它创建之后,在函数内部有一个函数调用,该函数将该数组作为带有索引的参数。

例如:

for (int x = 0; x < CAPACITY, x++)
   functionCall(array[x]);

现在我应该创建一个函数,以便调用可以工作。但是当我完成我的功能时:

void functionCall(int array[]);

它不起作用,因为它无法将int变为int[]

我想我的问题是,如果我必须在我的函数中调用它,就好像它不是一个数组,我怎么能得到数组最初创建的数字列表。

现在,如果我只是把它作为一个int而不是一个数组,就像它要我做它只是给我数字5而不是数组中的任何数字。例如:

void functionCall(int array);

真诚地感谢您的任何事情,如果这听起来令人困惑,我道歉。

2 个答案:

答案 0 :(得分:2)

functionCall(array[x]);

这将数组中的x th 元素传递给函数,因此只有一个int

array[2] = 5;
functionCall(array[2]); // This is the same as functionCall(5);

因此在函数中,您将获得数组的当前元素。不是数组本身。

您无法获取该函数中的列表,因为每次调用它时,您只会给该列表中的一个元素。

答案 1 :(得分:0)

猜测,我怀疑你正在寻找类似MCVE下面的内容:

#include <iostream>

void functionCall(int v) {
    std::cout << v << " ";
}
void func(int array[], size_t CAPACITY) {
    for (size_t x = 0; x < CAPACITY; x++)
        functionCall(array[x]);
}
int main() {
    int list[] = { 1,2,3,4,3,0, 42 };
    func(list, std::distance(std::begin(list), std::end(list)));
    return 0;
}