- 0
- 0
- 约2.46万字
- 约 87页
- 2017-06-19 发布于湖北
- 举报
第八章 函 数(The User-defined Function) Function declaration, called, return a value and passing character(定义、调用、返回值的方法及参数传递方式 ) Function usage(掌握函数使用的常用方法) Variable scope and storage class(变量的作用域和变量的存储类别) 8.1 概 述 一、C函数的概念 二、C函数与C程序结构 三、C函数的特点 四、函数的分类 (Category of Functions) 8.2 Definition of Function(函数定义的一般形式) 一、No arguments function definition (无参函数的定义) 8.3 Arguments and return value函数参数和函数的值 一、 形式参数和实际参数 上例中形参与实参、函数名与返回值之间的关系: 二、函数的返回值(Return value) 三、函数值的类型(Type of return value) 8.4 函数的调用(Function calls) 一、函数调用的一般形式 (Methods) 二、函数调用的具体方式 三、对被调用函数的声明(Function declaration) 8.5 Passing Arrays to Function(数组作为函数的参数) 数组名做参数的好处(Advantage): ⑴由于只需复制一个地址值,而无须复制全部需要处理的数据,因此节约存储空间并提高效率。 ⑵由于主调函数和被调函数是在相同的内存区域上对数据进行操作,因此可以实现数据的同步更新。 8.6 函数的嵌套调用(Nesting calls) [例8.6] 用弦截法求方程的根 上题函数的嵌套调用关系: 8.7 函数的递归调用(recursion) 上题函数的嵌套调用关系: 8.8 Local variables and global variables(局部变量和全局变量) 一、局部变量(Local variables ) 二、全局变量(global variables) int p=1,q=5; //全局变量 float f1(int a) /*定义函数f1*/ {int b, c; … } char c1,c2; //全局变量 char f2(int x, int y) /*定义函数f2*/ {int i, j; … } void main() /*主函数*/ {int m, n; … } extern c2; int p=1,q=5; //全局变量 float f1(int a) /*定义函数f1*/ {int b, c; … } char c1,c2; //全局变量 char f2(int x, int y) /*定义函数f2*/ {int i, j; … } void main() /*主函数*/ {int m, n; … } int p=1,q=5; //全局变量 float f1(int a) /*定义函数f1*/ {int b, c; … } char c1,c2; //全局变量 char f2(int x, int y) /*定义函数f2*/ {int i, j; int p=3,q=9; … } void main() /*主函数*/ {int m, n; … } ⑴全局变量在程序的全部执行过程中都占 用存储单元。 ⑵使用全局变量不符合程序设计中要求模块 间“强内聚性、弱耦合性”的原则。 ⑶使用全局变量过多,会降低程序的可读性 和可维护性。 8.9 变量的存储类别 (storage class) 一、Static storage and dynamic storage 二、 Static variables and dynamic variables 三、变量的属性及其定义 四、变量的存储类型 8.10 内部函数和外部函数 本章作业: 3.判断对错 1)C函数通过函数名只能返回一个值; 2)C函数至少要有一个形参; 3)函数可以在main函数前定义; 4)函数可以在main函数之中定义; 5)用户定义的函数至少应被调用一次,否则就会出现警告信息; 6)任何名字都可用作函数名; 7)只有void类型的函数可以用void作为其形参; 8)全局函数在程序中所有的复合语句和函数中都是起作用的; 9)函数可以调用它自己; 10)没有return语句的函数是非法的; 11)全局变量不能被声明为auto变量; 12)函数原形必须永远放在主调函数的外面; 13)函数的
原创力文档

文档评论(0)