我是一名正在为C ++做作业的学生,我遇到了一些我不熟悉的事情。我有一个int数组,没有大小,但有一个数字列表。在它创建之后,在函数内部有一个函数调用,该函数将该数组作为带有索引的参数。
例如:
for (int x = 0; x < CAPACITY, x++)
functionCall(array[x]);
现在我应该创建一个函数,以便调用可以工作。但是当我完成我的功能时:
void functionCall(int array[]);
它不起作用,因为它无法将int
变为int[]
。
我想我的问题是,如果我必须在我的函数中调用它,就好像它不是一个数组,我怎么能得到数组最初创建的数字列表。
现在,如果我只是把它作为一个int而不是一个数组,就像它要我做它只是给我数字5而不是数组中的任何数字。例如:
void functionCall(int array);
真诚地感谢您的任何事情,如果这听起来令人困惑,我道歉。
答案 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;
}