1.函数的概述
C语言程序的基本单元是函数。函数中包含程序的可执行代码。
每个C程序入口和出口都是位于main函数之中。main函数也成为程序的主函数。在main函数中调用其他函数,等这些函数执行完毕后又会返回到主函数中。
2.函数的定义
1.函数定义的形式
返回值类型 函数名(参数列表) { 函数体(函数实现特定功能的过程) }
函数的定义是在程序中编写函数时,让编译器知道函数功能。定义的函数包括函数头和函数体两个部分。
2.函数头
- 是用来标志一个函数代码的开始,也是函数的入口。
- 返回值类型,可以是任何C数据类型
- 函数名,函数的标识符,具有唯一性,遵循标识符命名规则。
- 参数列表,可以没有参数也可以有一个或多个参数
3.函数体
- 函数实现特定功能的过程
- 包括局部变量的声明和函数的可执行代码
4.函数的声明与定义
- 函数的声明是让编译器知道有这个函数的存在
- 函数的定义让编译器知道函数的功能
3.函数的返回
1.返回语句
return 0;
- 返回语句能立即从函数返回到调用程序中。
- 将函数的值返回给调用表达式
2.返回值
- 返回值是通过return语句获取,return将函数中一个确定的值返回到调用函数中
- 如果返回值类型和return语句表达式的值类型不一样,则以函数返回值类型为准
4.函数参数
调用函数将数据传递给被调用函数,函数利用接受的值具体操作。
1.形式参数
- 形式上存在的参数
- 函数定义时的变量名成为形式参数
2.实际参数
- 实际存在的参数
- 调用函数给被调用函数所传递的数据称为实际参数
5.函数的调用
1.函数语句的调用
- 把函数调用当作一个语句
2.函数表达式的调用
- 函数出现到一个表达式中,函数返回一个确定的值作为参加表达式的用算
3.函数参数的调用
- 函数被作为一个实际参数被调用
6.嵌套调用
- C语言不能进行嵌套定义
- 可以进行嵌套调用,在一个函数体内调用另一个函数
- 递归调用属于嵌套调用,函数可以直接或间接的调用自己
7.内部函数和外部函数
1.内部函数
- 只被所在源文件使用的函数称为内部函数
- 定义内部函数时要在返回值或者函数名之前加上关键字static
static 返回值类型 函数名(参数列表); 返回值类型 static 函数名(参数列表);
2.外部函数
- 可以被其他源文件调用的函数
- 使用外部函数时,要用 extern 关键字进行声明
extern 返回值类型 函数名(参数列表);
8.局部变量和全局变量
1.局部变量
- 在一个函数体内部声明的变量叫局部变量
- 只作用于声明函数体内部所有语句块
2.全局变量
- 在函数外部声明的变量叫全局变量
- 程序中任何位置都可以访问