📜  将数组传递给C中的函数

📅  最后修改于: 2020-10-04 12:06:45             🧑  作者: Mango

在本教程中,您将学习通过示例将数组(一维和多维数组)传递给C编程中的函数的方法。

在C编程中,可以将整个数组传递给函数。在了解这一点之前,让我们看看如何将数组的各个元素传递给函数。


传递单个数组元素

将数组元素传递给函数类似于将变量传递给函数。


示例1:传递数组

#include 
void display(int age1, int age2)
{
    printf("%d\n", age1);
    printf("%d\n", age2);
}

int main()
{
    int ageArray[] = {2, 8, 4, 12};

    // Passing second and third elements to display()
    display(ageArray[1], ageArray[2]); 
    return 0;
}

输出

8
4

示例2:将数组传递给函数

// Program to calculate the sum of array elements by passing to a function 

#include 
float calculateSum(float age[]);

int main() {
    float result, age[] = {23.4, 55, 22.6, 3, 40.5, 18};

    // age array is passed to calculateSum()
    result = calculateSum(age); 
    printf("Result = %.2f", result);
    return 0;
}

float calculateSum(float age[]) {

  float sum = 0.0;

  for (int i = 0; i < 6; ++i) {
        sum += age[i];
  }

  return sum;
}

输出

Result = 162.50

要将整个数组传递给函数,仅将数组的名称作为参数传递。

result =  calculateSum(age);

但是,请注意在函数定义中使用[]

float calculateSum(float age[]) {
... ..
}

这通知编译器您正在将一维数组传递给该函数。


将多维数组传递给函数

要将多维数组传递给函数,仅将数组名称传递给函数(类似于一维数组)。

示例3:传递二维数组

#include 
void displayNumbers(int num[2][2]);
int main()
{
    int num[2][2];
    printf("Enter 4 numbers:\n");
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j)
            scanf("%d", &num[i][j]);

    // passing multi-dimensional array to a function
    displayNumbers(num);
    return 0;
}

void displayNumbers(int num[2][2])
{
    printf("Displaying:\n");
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 2; ++j) {
           printf("%d\n", num[i][j]);
        }
    }
}

输出

Enter 4 numbers:
2
3
4
5
Displaying:
2
3
4
5

注意:在C编程中,可以将数组传递给函数,但是,不能从函数返回数组。