第7章函数
第7章函数
7.1 函数的定义
7.2 函数的调用
7.3 数据传递方法
7.4 嵌套调用和递归调用
7.5 变量的作用域
7.6 变量的存储类别
7.7 结构化程序设计方法
第7章函数
7.1 函数的定义
1. 函数头
函数头有经典与现代两种形式, 现代形式称之为函数原型。
经典形式:
函数属性函数类型函数名(函数参数表)参数说明
如: static float f1 (a,b,c )/*属性static,类型float,函数名f1,函数参
数表″a,b,c ″/float a, b, c; /*参数说明*/
现代形式:
函数属性函数类型函数名(参数说明)
如: static double f2 (float x, float y, float z )
第7章函数
2. 函数体
函数体由服务于函数的数据说明与执行语句两部分组
成。数据说明包括数据定义和数据申明, 完成数据描述, 执
行语句完成操作描述。TURBO C 中数据说明必须位于函
数体或复合语句的开始处, 但C++ 中可根据需要随时定义。
一个函数的函数体可以为空, 此时的函数称为空函数,
空函数常用于程序调试。
空函数的形式为:
void f( )
{ }
第7章函数
7.1.2 返回语句
通过在函数中使用返回语句, 返回一个值给函数, 同
时终止函数的调用, 返回主函数。
格式:
return (表达式);
或return 表达式;
功能:
(1) 计算表达式的值, 将表达式的值返回给函数。
(2) 从被调用的函数返回主调函数。
第7章函数
7.1.3 函数的定义
(1) 需定义函数的属性。
(2) 需定义函数的类型。
(3) 给函数取一个名字。
(4) 设计函数的参数。
(5) 对函数中使用的量进行定义。
(6) 对函数的执行部分进行描述。
第7章函数
例7 – 1 求两个数的最大值函数。
/*求两个数的最大值函数*/
float max (x, y ) (1) 函数值类型float
float x, y; (2) 函数名max
{float m; (3) 函数参数x 、 y, 类型为float
if (x>y )m=x;
else m=y;
return (m ); /*返回最大值*/
}
第7章函数
说明:
(1) 函数头可以采用现代形式:
float max (float x, float y )
(2) 函数体也有多种等价形式:
形式一: if (x>y ) return (x );
else return (y );
形式二: return (x>y ?x: y );
第7章函数
例7-2 判断两个数是否是相等函数。
方法一:
/*判断两个数是否是相等函数*/
int eq (x, y ) (1) 函数值类型int, 可以缺省
float x, y; (2) 函数名eq
{f