如何在函数中声明一个数组并在C中调用该函数

时间:2015-04-01 16:20:16

标签: c arrays

我有一项任务,我无法弄清楚这一部分。

分配要求我创建两个单独的函数并在main中调用它们。所以我的问题是调用指向数组的指针的语法是什么?如何在主程序中调用该函数?例如,

int function_1(int x, *array);

我如何致电function_1?还是我完全迷失在这里?

我应该添加,无论何时我尝试用数组调用该函数,我都会收到此错误: [Warning] assignment makes pointer from integer without a cast [enabled by default]

2 个答案:

答案 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[])
{
    ...
}