文章目录
前言
函数是C语言的基本单位,学好函数有利于程序的模块化以及避免写出重复的代码从而减少代码量,并且可以提高程序的复用性与可读性。
一、引入
- 引例:定义6个整型变量a,b,c,d,e,f,并对它们任意赋值。分别输出a,b的最大值,c,d的最大值和e,f的最大值
#include <stdio.h>
int main()
{
int a, b, c, d, e, f;
a = 5, b = 3, c = 6, d = 87, e = 12, f = 49;
if (a > b)
printf("%d\n", a);
else if (a < b)
printf("%d\n", b);
if (c > d)
printf("%d\n", c);
else if (c < d)
printf("%d\n", d);
if (e > f)
printf("%d\n", e);
else if (e < f)
printf("%d\n", f);
return 0;
}
通过观察可以发现,代码中有大量重复的部分,如果我们定义一万个变量,并两两比较求出其中的最大值,那么if...else if...else
语句就要写一万次,这显然非常累赘。在编程过程中,经常会发现,虽然数据不一样,但是对这些数据的操作却是一样的,例如,引例中求a,b中的最大值与求c,d的最大值所做的操作是一样的,唯独只有被操作的数据不同而已。所以如果程序中有大量重复的作操,但只是针对的数据不一样时,我们可以通过定义函数来解决代码重复的问题。上述引例可以通过如下代码实现对应的功能:
#include <stdio.h>
void get_max(int i, int j) // 自定义的求最大值的函数
{
if (i > j)
printf("%d\n", i);
else if (i < j)
printf("%d\n", j);
else
printf("Equal!\n");
}
int main()
{
int a, b, c, d, e, f;
a = 5, b = 3, c = 6, d = 87, e = 12, f = 49;
get_max(a, b);
get_max(c, d);
get_max(e, f);
return 0;
}
二、认识函数
void
表示该函数没有返回值,get_max
是该函数的名字,函数名后括号中的变量i
和j
被称为该函数的形式参数(简称形参)。
void get_max(int i, int j)
{
if (i > j)
printf("%d\n", i);
else if (i < j)
printf("%d\n", j);
}
所有的语言程序的入口都是main
函数,从main
函数进入则开始顺序逐行执行main
函数中的代码。下面代码块中定义完变量并完成赋值后,程序执行到get_max(a, b);
,此时程序便会从main
函数的上方查找一个名叫get_max
函数并将括号中的变量a
和b
的值分别传输到get_max
函数名后括号中的形参i
和j
中,然后程序会跳转到get_max
函数的内部执行,待get_max
函数执行完毕后,再跳转回main
函数继续执行main
函数中的下一条语句。
int main()
{
int a, b, c, d, e, f;
a = 5, b = 3, c = 6, d = 87, e = 12, f = 49;
get_max(a, b);
get_max(c, d