我在main()函数中声明了一个数组,我需要在从main()调用的函数中访问它。如何使数组对函数可用?最好的方法是什么?我尝试使用static关键字,但是没有任何改变。我应该在main()之外声明数组以及被调用的函数吗?
答案 0 :(得分:2)
如何使数组可用于该功能?
在C语言中,可以通过将变量的名称放在要调用的函数的括号中来将变量(如数组)传递给函数。
什么是最好的方法?
假设您有以下代码:
void INeedNums(int nums) {
// Do something with them nums.
}
int main() {
int aBunchofNums[] = {1,2,3,4};
INeedNums(aBunchofNums);
}
此代码会将{1,2,3,4}的整个数组发送给函数以供使用。
我是否应该在main()之外声明数组以及要调用的函数?
您可以在main()
函数外部声明它,使其成为外部变量。外部变量可以通过任何函数访问。
上面的代码将数组发送给函数,函数可以在其中使用它。请注意,该函数如何建立一个名为int nums
的新变量来处理它,这意味着它没有使用完全相同的变量,这意味着当您在第二个函数中编辑数组时,它不会更改该数组。驻留在您发送给它的main()
中。有多种方法可以更改此设置,即使用指针,例如P__J__的答案。
答案 1 :(得分:1)
您可以将其作为参数传递给其他函数,也可以将其全局声明。
示例-并练习以了解变量的范围:
int array[100]
int add(size_t first, size_t second, size_t result )
{
array[result] = array[first] + array[second];
return array[result];
}
int add1(int *array, size_t first, size_t second, size_t result )
{
array[result] = array[first] + array[second];
return array[result];
}
void foo1(void)
{
int array[100];
add1(array, 5, 7, 9);
add(5, 7, 9);
}