文档介绍:共 73 页第 1 页
第七章
函数
共 73 页第 2 页
本章要点
函数的定义
函数的调用
函数间的数据传递
变量的存储类型
变量的作用范围
内部函数和外部函数
共 73 页第 3 页
C程序是函数的集合体,每个函数是一个独立的程序模块。
有一个主函数,若干个子函数,程序总是从主函数开始执行;
函数可集中或分散存放在一个或多个源程序文件中。
所有子函数地位平等,可互相调用、自我调用。
· 引入函数的优点: 减少重复编写程序的工作量;使程序便于调试和阅读。
函数
F1 ( )
main ( )
F11 ( )
F2 ( )
F21 ( )
F22 ( )
C语言程序的结构
函数的概念和函数的定义
共 73 页第 4 页
数学函数
字符和字符串函数 ,
输入/输出函数
动态存储分配函数 calloc(),malloc()
形式
无参函数
有参函数
空函数
库函数
用户定义函数:
C函数的分类
共 73 页第 5 页
[7-1] 输入三个整数,计算它们的和并输出运算结果。
main( )
{ int a, b, c, sum ;
scanf("%d,%d,%d",&a,&b,&c);
sum=add(a,b,c);
printf(" sum= %d\n",sum);
}
int add(int x, int y, int z)
{ int s;
s=x+y+z;
return s;
}
函数示例
共 73 页第 6 页
语法形式
类型标识符函数名(形式参数表)
{ [说明部分]
语句
}
函数的定义
若无参数,写void或空。
是被初始化的内部变量,
寿命和可见性仅限于函
数内部
若不说明类型,一律自
动按整型处理
函数体(一段程序,实现
函数的功能)
共 73 页第 7 页
1. 无参函数的定义形式
类型标识符函数名( )
{
[说明部分]
语句
}
[例7-1] print_message( )
{
printf(“How are you !\n”);
}
共 73 页第 8 页
[例7-2]
int max (int x,int y)
{ int z;
z=x>y?x : y;
return z;
}
类型标识符函数名(形式参数表列)
{
[说明部分]
语句
}
int max ( x, y)
int x,y;
{ int z;
z=x>y?x : y;
return z;
}
形参变量的说明(传统形式)
形参变量的说明(现代形式)
2. 有参函数的定义形式
共 73 页第 9 页
3. 形式参数说明
形式参数:
在定义函数时函数名后面括弧中的变量名
在形参表中说明的形参,在函数体中不再说明,可以同一般变量一样直接使用。
形参调用前不占内存单元,调用时占用,调用后释放。
形参是函数的内部变量,只在函数内部才有意义。
对每个形参必须指明其名字和数据类型。
多个形参用逗号分隔。
共 73 页第 10 页
函数的调用
1. 函数调用的一般形式为:
函数名(实际参数列表);
或函数名(实际参数列表)
说明:
实参必须有确定的值,可以是常量、变量、表达式及函数调用。
实参与形参的类型、个数、顺序必须一致。
多个实参用逗号分隔。
2. 执行过程:
计算各个表达式;
把得到值赋给对应的形参;
执行函数体;
遇到return语句或执行完最后一条语句,返回到函数调用处。