目录
函数初识
函数又被称为「功能」,是 C 语言实现模块化程序设计的基础,每一个函数都会实现一个特殊的功能。一个完整的 C 语言程序都是通过函数之间的调用完成的,因此,熟练掌握函数对于学习 C 语言非常重要,下面将详细介绍函数的定义、使用。
函数的引用
在前面几章学习中,我们将所有的程序都写在一个主函数中。虽然这样可以实现功能,但是当程序功能比较多,规模比较大时,会使主函数变得庞杂、冗长,难以阅读、维护,并且功能代码不能复用。为了解决这个问题,C 语言引入了模块化程序设计的思想,类似于搭积木。先将各个功能代码拆分为单独的程序模块,需要时直接在 main 函数中进行「组装」即可。
函数,就是实现特定功能的程序模块,是 C 语言程序实现模块化思想的关键。在 C 语言中,函数分为以下两种。
(1)库函数:由系统或第三方库提供,直接调用即可,无需了解函数内部实现,例如,printf、getchar 等函数。
(2)用户自定义函数:由程序员手动封装,需要了解函数内部实现。
以上两种函数都是程序中比较常用的,一般情况下,如果系统库已经提供了实现某个功能的函数,直接调用系统库函数即可,否则用户需要自己编写代码实现。
定义函数
在 C 语言中,函数定义分为两种,无参函数和有参函数。
第一种,无参函数。定义无参函数的一般形式为:
类型名 函数名()
{
语句;
}
或
类型名 函数名(void)
{
语句;
}
其中,类型名用来指定函数返回值的类型。如果函数没有返回值,可以将类型名写为 void。函数名后面括号中,如果没有形参,可以不写或写为 void,表示调用该函数时无需传入数据,例如,getchar 函数。
说明:形参:就是函数定义时函数名后面小括号中的变量,本质上就是局部变量,在该函数被调用时,由外部为该形参变量进行赋值。形参变量与局部变量的生命周期是一样的,只能在本函数内使用,函数执行结束形参变量就被释放。需要注意的是,形参只能是变量。
无参函数的定义如下例所示:
无参函数的定义如下例所示:
void show(void) //无参函数 show
{
printf(”辽G.默语“); //函数体
}
第二种,有参函数。定义有参函数的一般形式为:
类型名 函数名(形参列表)
{
语句;
}
有参函数与无参函数唯一的不同,就是函数名后面多了形参列表,表示调用该函数时需要传入数据,例如,printf 函数。
有参函数的定义如下例所示:
void show(int num) //有参函数 show
{
printf("num=%d\n",num);
}
调用函数
定义函数的目的就是为了调用函数,函数类型不同,调用方式也不同。函数调用的一般形式为:
函数名 (实参列表);
实参列