如何在函数中声明数组并在C中调用函数
我有一个作业,我搞不懂这部分 赋值要求我创建两个单独的函数,并在main中调用它们。所以我的问题是,调用数组指针的语法是什么,在主程序中如何调用该函数?比如说,如何在函数中声明数组并在C中调用函数,c,arrays,C,Arrays,我有一个作业,我搞不懂这部分 赋值要求我创建两个单独的函数,并在main中调用它们。所以我的问题是,调用数组指针的语法是什么,在主程序中如何调用该函数?比如说, int function_1(int x, *array); 我如何调用函数_1?还是我完全迷路了 我应该补充一点,每当我尝试使用数组调用函数时,我都会遇到以下错误: [警告]赋值从整数生成指针,而不使用强制转换[默认启用] int function(int x, char *array) { //do some work
int function_1(int x, *array);
我如何调用函数_1
?还是我完全迷路了
我应该补充一点,每当我尝试使用数组调用函数时,我都会遇到以下错误:
[警告]赋值从整数生成指针,而不使用强制转换[默认启用]
int function(int x, char *array)
{
//do some work
return 0;
}
大体上
int main()
{
char arr[5] = {'a', 'b', 'c', 'd'};
int x = 5;
function(x, &arr[0]);
return 0;
}
有趣的是,数组在C中已经是指针了。因此,如果您想将数组作为指向函数的指针传递,只需传递您声明的数组即可!我在下面给出了一个小例子,虽然我不知道你的代码应该做什么。我传递了
函数\u 1(…)
数字12,然后是数组指针
int function_1(int x, *array)
{
...
}
int main()
{
//declare a ten element integer array
int arr[10];
//calls the function, passing in 12 for the integer, and a pointer to the array.
function_1(12, arr);
...
return 0;
}
我希望这能让事情明朗一点。使用方阵<代码> > []/CODE的方括号的方法实际上是对C.中所有指针都能做的事情,但您并不需要考虑这部分太多,但请记住数组已经是指针,因此您不需要做任何其他事情来将它们作为指针传递。事实上,您可以将函数重写为仅使用数组作为参数,如下所示,而不是使用*
作为指针:
int function_1(int x, int array[])
{
...
}
你可以用谷歌搜索这个“C函数”。在我看来,没有做任何研究。数组和指针是不同的。只是数组很容易衰减成指针。好的,谢谢。但是,修改函数中的数组内容不必通过引用传递它们,对吗?从不同函数访问数组中数据的正常方式是通过值传递指向数组的指针。您通常将其编写为
function_1(15,arr)
,因为在该上下文中(以及许多其他上下文中),数组arr
将衰减为指针。