简单来说,C语言中的函数是一段具有特定功能的代码块,可以被程序多次调用。
函数通常接收输入(称为参数),执行某些操作,然后返回一个结果(返回值)。比如,C语言标准库中的 printf() 就是一个函数,它接收我们要输出的内容作为参数,并在屏幕上显示出来。
C语言标准库提供了很多功能实用的函数,此外 C 语言还允许程序员自己设计函数的功能,这个过程称为函数的定义。
在 C语言中,函数的定义包含几个关键部分:返回类型、函数名、参数列表以及函数体。
函数的定义
在 C 语言程序中,定义函数的语法格式如下:
返回类型 函数名(参数列表) {
函数体;
return 返回值; // 如果返回类型不是 void,则需要返回值
}
逐一分析每个组成部分的含义:
返回类型:指定函数执行后返回的数据类型,比如 int、float、char 等。如果函数不需要返回值,则使用 void。
函数名:函数的名称,用于标识和调用函数。命名时应遵循 C语言的标识符规则(以字母或下划线开头,后接字母、数字或下划线),并且尽量具有描述性。
参数列表:括号中列出函数接收的输入数据,每个参数由类型和变量名组成。如果没有参数,则写成空括号 ( ),或者明确写成 (void)。
函数体:用大括号 { } 包裹,是函数的具体实现代码。
return 语句:用于指定函数的返回值并结束函数执行。如果返回类型是 void,可以省略 return,或者只写 return;。
让我们从一个简单的函数开始,计算两个整数的和:
int add(int a, int b) {
int sum = a + b;
return sum;
}
在这个例子中:
返回类型是 int,表示函数返回一个整数。
函数名是 add,表示“加法”。
参数列表是 int a, int b,表示函数接收两个整数参数。
函数体计算 a + b,并通过 return 返回结果。
如何调用这个函数呢?以下是一个完整的程序示例:
#include
int add(int a, int b) {
int sum = a + b;
return sum;
}
int main() {
int result = add(3, 5);
printf("3 + 5 = %d\n", result);
return 0;
}
输出结果:
3 + 5 = 8
在 main() 函数中,我们调用了 add(3, 5),将返回值赋给变量 result,然后通过 printf() 输出结果。
函数定义的多种形式
函数的定义可以根据需求灵活变化。以下是一些常见的形式:
1) 无参数有返回值
如果函数不需要接收参数,直接省略参数列表即可。例如
int getNumber() {
return 42;
}
2) 有参数无返回值
如果函数只是执行某些操作而不返回任何值,可以将返回类型设为 void。
例如,一个简单的打印问候语的函数:
void sayHello() {
printf("Hello, world!\n");
}
这里没有 return 语句,因为返回类型是 void。
调用时只需写:
sayHello();
运行程序,输出结果为:
Hello, world!
3) 多个返回值(间接实现)
C语言函数本身只能返回一个值,但可以通过指针间接返回多个值。例如:
#include
void getMinMax(int a, int b, int *min, int *max) {
*min = (a < b) ? a : b;
*max = (a > b) ? a : b;
}
int main() {
int min, max;
getMinMax(3, 7, &min, &max);
printf("Min = %d, Max = %d\n", min, max);
return 0;
}
输出结果为:
Min = 3, Max = 7