编辑这个页面须要登录或更高权限!

C 数组作为函数参数

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

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

传递单个数组元素

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

示例1:传递数组

#include <stdio.h>
void display(int age1, int age2)
{
    printf("%d\n", age1);
    printf("%d\n", age2);
}

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

    //将第二个和第三个元素传递给display()
    display(ageArray[1], ageArray[2]); 
    return 0;
}

输出结果

8
4

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

//程序通过传递给函数来计算数组元素的总和

#include <stdio.h>
float calculateSum(float age[]);

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

    //age数组传递给calculateSum()
    result = calculateSum(age); 
    printf("结果 = %.2f", result);
    return 0;
}

float calculateSum(float age[]) {

  float sum = 0.0;

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

  return sum;
}

输出结果

结果 = 162.50

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

result =  calculateSum(age);

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

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

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

将多维数组传递给函数

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

示例3:传递二维数组

#include <stdio.h>
void displayNumbers(int num[2][2]);
int main()
{
    int num[2][2];
    printf("输入4个数字:\n");
    for (int i = 0; i < 2; ++i)
        for (int j = 0; j < 2; ++j)
            scanf("%d", &num[i][j]);

    //将多维数组传递给函数
    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]);
        }
    }
}

输出结果

输入4个数字:
2
3
4
5
Displaying:
2
3
4
5

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