032. 编写带参数的函数
在C语言中,带参数的函数是非常常见的,参数允许函数接收外部传入的值,从而使得函数更加灵活和通用。以下将详细介绍如何编写带参数的函数,并通过具体示例展示如何使用这些参数。
1. 定义带参数的函数
定义带参数的函数时,需要在函数名后面的小括号中指定参数列表。每个参数包括类型和参数名。
示例1:定义一个带参数的函数
#include <stdio.h>
// 定义一个带参数的函数,计算两个整数的和
int add(int a, int b) {
return a + b;
}
int main() {
int num1 = 5, num2 = 3;
int result = add(num1, num2); // 调用函数并传递参数
printf("The sum of %d and %d is %d\n", num1, num2, result);
return 0;
}
输出结果
The sum of 5 and 3 is 8
2. 传递多个参数
函数可以接受多个参数,这些参数在调用时按顺序传递。
示例2:定义一个带多个参数的函数
#include <stdio.h>
// 定义一个带多个参数的函数,计算三个整数的平均值
float average(int a, int b, int c) {
return (a + b + c) / 3.0;
}
int main() {
int num1 = 10, num2 = 20, num3 = 30;
float result = average(num1, num2, num3); // 调用函数并传递参数
printf("The average of %d, %d, and %d is %.2f\n", num1, num2, num3, result);
return 0;
}
输出结果
The average of 10, 20, and 30 is 20.00
3. 传递数组作为参数
可以将数组传递给函数。在函数中,数组参数实际上是数组的首地址。
示例3:定义一个带数组参数的函数
#include <stdio.h>
// 定义一个带数组参数的函数,计算数组的总和
int sumArray(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int result = sumArray(arr, size); // 调用函数并传递数组
printf("The sum of the array elements is %d\n", result);
return 0;
}
输出结果
The sum of the array elements is 15
4. 传递结构体作为参数
可以将结构体传递给函数。在函数中,可以访问和修改结构体的成员。
示例4:定义一个带结构体参数的函数
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[50];
int age;
};
// 定义一个带结构体参数的函数,打印结构体信息
void printPerson(struct Person p) {
printf("Name: %s, Age: %d\n", p.name, p.age);
}
int main() {
struct Person person = {"Alice", 25};
printPerson(person); // 调用函数并传递结构体
return 0;
}
输出结果
Name: Alice, Age: 25
5. 传递指针作为参数
可以将指针传递给函数。在函数中,可以通过指针修改外部变量的值。
示例5:定义一个带指针参数的函数
#include <stdio.h>
// 定义一个带指针参数的函数,交换两个整数的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1 = 5, num2 = 10;
printf("Before swap: num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2); // 调用函数并传递指针
printf("After swap: num1 = %d, num2 = %d\n", num1, num2);
return 0;
}
输出结果
Before swap: num1 = 5, num2 = 10
After swap: num1 = 10, num2 = 5
6. 传递函数指针作为参数
可以将函数指针传递给另一个函数。这在实现回调函数或函数表时非常有用。
示例6:定义一个带函数指针参数的函数
#include <stdio.h>
// 定义一个函数,计算两个整数的和
int add(int a, int b) {
return a + b;
}
// 定义一个函数,计算两个整数的差
int subtract(int a, int b) {
return a - b;
}
// 定义一个带函数指针参数的函数,执行指定的操作
int operate(int (*func)(int, int), int a, int b) {
return func(a, b);
}
int main() {
int result1 = operate(add, 5, 3); // 调用函数并传递函数指针
int result2 = operate(subtract, 5, 3); // 调用函数并传递函数指针
printf("Result of addition: %d\n", result1);
printf("Result of subtraction: %d\n", result2);
return 0;
}
输出结果
Result of addition: 8
Result of subtraction: 2
通过上述示例,你可以看到如何在C语言中编写带参数的函数:
- 定义函数:在函数名后面的小括号中指定参数列表。
- 调用函数:在调用时按顺序传递参数。
- 传递数组:数组参数实际上是数组的首地址。
- 传递结构体:可以访问和修改结构体的成员。
- 传递指针:可以通过指针修改外部变量的值。
- 传递函数指针:可以实现回调函数或函数表。
视频讲解
BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)