跳到主要内容

C 语言中向函数传递数组

提示
  1. 传递数组元素到函数:可以将数组元素单独传递给函数,类似于向函数传递普通变量。
  2. 传递整个数组到函数:要将整个数组作为参数传递给函数,只需传递数组名。在函数定义中,使用[]来指明接收的是一维数组。
  3. 传递多维数组到函数:与一维数组类似,多维数组也可以通过传递数组名来传递给函数。在函数中,需要指定除第一维之外的所有维度的大小。

在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

这里,我们以传递变量给函数的相同方式,将数组参数传递给了display()函数。

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

我们可以在函数定义中看到,函数参数是单独的变量:

void display(int age1, int age2) {
// 代码
}

示例2:向函数传递数组

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

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

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

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

float calculateSum(float num[]) {
float sum = 0.0;

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

return sum;
}

输出

结果 = 162.50

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

result = calculateSum(num);

然而,注意函数定义中的[]的使用。

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

这告诉编译器您正在向函数传递一维数组。

向函数传递多维数组

要向函数传递多维数组,只需将数组的名称传递给函数(与一维数组类似)。

示例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("显示:\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
显示:
2
3
4
5

注意函数原型和函数定义中的参数int num[2][2]

// 函数原型
void displayNumbers(int num[2][2]);

这表示该函数接受二维数组作为参数。我们也可以将超过2维的数组作为函数参数传递。

当传递二维数组时,指定数组行数并不是必须的。但是,列数应始终被指定。

例如,

void displayNumbers(int num[][2]) {
// 代码
}