我有一项任务,我无法弄清楚这一部分。
分配要求我创建两个单独的函数并在main中调用它们。所以我的问题是调用指向数组的指针的语法是什么?如何在主程序中调用该函数?例如,
int function_1(int x, *array);
我如何致电function_1
?还是我完全迷失在这里?
我应该添加,无论何时我尝试用数组调用该函数,我都会收到此错误:
[Warning] assignment makes pointer from integer without a cast [enabled by default]
答案 0 :(得分: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;
}
答案 1 :(得分:-1)
有趣的是,数组已经是C中的指针。所以如果你想传递一个数组作为指向函数的指针,你只需传递你声明的数组!我在下面举了一个例子,但是,我不知道你的代码应该做什么。我传递了function_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;
}
我希望这会把它搞清楚一点。使用带有数组[]
的方括号的方法实际上是你可以用C中的所有指针做的事情。你真的不需要考虑那个部分,但只记得数组已经是指针,所以你不需要做任何其他事情来传递它们作为指针。实际上,你可以重写你的函数只是使用数组作为参数,而不是使用*
作为指针:
int function_1(int x, int array[])
{
...
}