内容正文:
《C语言程序设计教程》
(第二版)
《C语言程序设计教程》(第二版)
第6章 函数和预处理
本章要点:
◆ 掌握函数的定义和调用
◆ 掌握形式参数和实际参数之间的传递
◆ 了解函数递归调用方法
◆ 掌握局部变量和全局变量
◆ 了解变量的存储类别和作用域
◆ 了解内部函数和外部函数
◆ 了解预处理命令
*
《C语言程序设计教程》(第二版)
第6章 函数和预处理
目 录
6.1 函数的定义
6.2 函数的调用
6.3 局部变量和外部(全局)变量
6.4 变量的存储类别和作用域
6.5 内部函数和外部函数
6.5 预处理命令
*
《C语言程序设计教程》(第二版)
6.1 函数的定义
一个较为复杂的C程序,通常由一个main主函数和若干其它函数组成,这些子函数就实现各个模块的功能,在主函数中来调用这些子函数。
函数是组成C程序的基本单位,也是C程序设计的核心。C语言使用函数把实现任务的细节封闭起来,通过函数调用来执行其功能。由于采用了函数模块式的结构,C语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。
C语言中,函数可分为以下两种:
(1)标准函数,即库函数。它由C语言编译系统提供,用户只要在程序头部将包含这些库函数的头文件包含进来,就可以直接使用它们。
(2)自定义函数,即用户自己编写的函数,执行一个特定的任务。
《C语言程序设计教程》(第二版)
6.1 函数的定义
【例6.1】 输出两行星号*,并在两行星号之间输出“This is Turbo C!”。
main()
{ print_star();
print_message();
print_star();
}
print_star()
{ printf("* * * * * * * * * * * * *
"); }
print_message()
{ printf(" This is Turbo C!
"); }
程序运行结果:
* * * * * * * * * * * * *
This is Turbo C!
* * * * * * * * * * * * *
本例中定义了三个函数,其中函数print_star 和print_message分别完成输出一行星号和输出一行信息的功能,这两个函数都没有参数。
《C语言程序设计教程》(第二版)
6.1 函数的定义
类型标识符 函数名(形参表)
形参说明
{
函数体
}
1. 函数定义的第一种格式
《C语言程序设计教程》(第二版)
6.1 函数的定义
1. 函数定义的第一种格式
说明:
(1)类型标识符指出函数返回值的类型,C语言默认是int。
(2)函数名由用户自定义,定义时应符合标识符的命名规则。
(3)形参表是以逗号分隔的变量名表,接收函数调用时的实际参数值。函数也可以不带参数,没有参数,也要求写上括号。
(4)形参说明部分用来定义形参的类型。
(5)函数体用来完成一个特定的任务。
(6)C语言中可以有“空函数”,即函数体为空的函数。
《C语言程序设计教程》(第二版)
6.1 函数的定义
类型标识符 函数名(类型 形参,类型 形参,…,类型 形参)
{
函数体
}
2. 函数定义的第二种格式
ANSI C允许以另一种形式说明形参,即在圆括号中同时给出形参的类型说明,定义格式:
实际编程时这种格式最为常用,而且在一些C语言编译系统中(如VC)只允许使用此格式。
《C语言程序设计教程》(第二版)
6.1 函数的定义
【例6.2】 计算组合
long cmn (int x) /*函数定义和形参说明*/
{ long y;
for (y=1;x>0;--x) y=y*x ;
return(y);
}
函数cmn()完成阶乘的运算
《C语言程序设计教程》(第二版)
6.1 函数的定义
【例6.2】 计算组合
main( )
{ int m ,n; long y ;
long cmn( ); /*说明函数cmn的函数返回值为long型*/
printf("请输入整数 m,n : ");
scanf("%d,%d",&m,&n);
y=cmn(m) /cmn(n) /cmn(m-n); /*函数调用,实参分别为m、n、m-n */
pri