c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2

上传人:E**** 文档编号:102541747 上传时间:2019-10-03 格式:PPT 页数:21 大小:1.04MB
返回 下载 相关 举报
c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2_第1页
第1页 / 共21页
c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2_第2页
第2页 / 共21页
c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2_第3页
第3页 / 共21页
c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2_第4页
第4页 / 共21页
c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2》由会员分享,可在线阅读,更多相关《c语言程序设计案例教程 教学课件 作者 旭日 第7章 函数和变量2(21页珍藏版)》请在金锄头文库上搜索。

1、第7章 函数和变量,7.1 案例-功能模块的实现 7.2 基础知识 7.2.1 函数的定义 7.2.2 函数的调用 7.2.3 函数的参数传递 7.2.4 函数的返回值 7.3 知识拓展 7.4小结,7.1 案例-功能模块的实现,案例:学生成绩管理系统功能模块的实现,包括输入、输出、插入、删除、查找、统计功能的实现。,返回,7.2 基础知识 7.2.1 函数的定义及声明,main()也是一个函数,C程序由一个main()或多个函数构成。 如右图所示,返回,1 函数的定义,函数是指完成一个特定工作的独立程序模块。 库函数:由C语言系统提供定义 如scanf()、printf()等函数 自定义函数

2、:需要用户自己定义 如计算圆柱体体积函数cylinder() 程序中一旦调用了某个函数,该函数就会完成一些特定的工作,然后返回到调用它的地方。 函数经过运算,得到一个明确的运算结果,并需要回送该结果。例如,函数cylinder()返回圆柱的体积。 函数完成一系列操作步骤,不需要回送任何运算结果。,返回,函数定义 一般格式,合法标识符,函数返回值类型 缺省int型 无返回值void,函数体,例 有参函数(现代风格) int max(int x,int y) int z; z=xy?x:y; return(z); ,例 无参函数 printstar( ) printf(“*n”); 或 print

3、star(void ) printf(“*n”); ,合法标识符,函数返回值类型 缺省int型 无返回值void,函数体,返回,2 函数的声明,函数类型 函数名(参数表); double cylinder (double r, double h); void pyramid (int n); 函数必须先定义后调用,将主调函数放在被调函数的后面,就像变量先定义后使用一样。 如果自定义函数在主调函数的后面,就需要在函数调用前,加上函数原型声明。 函数声明:说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。,只写函数定义中的第1行(函数首部),并以分号结束。,返回,7.2.2

4、 函数的调用,定义一个函数后,就可以在程序中调用这个函数。 调用标准库函数时,在程序的最前面用#include命令包含相应的头文件。 调用自定义函数时,程序中必须有与调用函数相对应的函数定义。,返回,1 函数调用的方式,调用形式 函数名(实参表); 说明: 实参与形参个数相等,类型一致,按顺序一一对应 实参表求值顺序,因系统而定,返回,2 函数调用的过程,计算机在执行程序时,从主函数main开始执行,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后,将返回主函数,然后再从原先暂停的位置继续执行。 函数遇return或最后的大括号,返回主函数,返回,1 实际参数和形式参

5、数 函数定义时的参数被称为形式参数(简称形参) double cylinder (double r, double h); 函数调用时的参数被称为实际参数(简称实参) volume = cylinder (radius, height); 实参形参 在参数传递过程中,实参把值复制给形参。 形参和实参一一对应:数量一致,类型一致,顺序一致 形参:变量,用于接受实参传递过来的值 实参:常量、变量或表达式,单向传递,7.2.3 函数的参数传递,返回,2 数组作为函数参数,数组元素作为函数参数 数组名作为函数参数(按地址传递),返回,7.2.4 函数的返回值,函数返回的两种情况 完成确定的运算,有一个

6、运算结果返回给主调函数。 完成指定工作,没有确定的运算结果需返回给主调函数(函数类型void)。 函数结果返回的形式: return 表达式; return (表达式);,返回,7.3 知识拓展,7.3.1 函数的嵌套调用 C规定:函数定义不可嵌套,但可以嵌套调用函数,返回,返回,7.3.2 函数的递归调用,定义:函数直接或间接的调用自身叫函数的递归调用,说明 C编译系统对递归函数的自调用次数没有限制 每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出,int f(int x) int y,z; z=f(y); . return(2*z);

7、 ,7.3.3 变量的作用域和存储类别,1 局部变量 在函数内定义的变量(包括形参) 作用范围:本函数内部 定义在复合语句内的变量 作用范围:复合语句内部,返回,2 全局变量,全局变量 在函数以外定义的变量,不从属于任一函数。 作用范围:从定义处到源文件结束(包括各函数),返回,3 变量的存储类型,自动变量(auto): 普通的局部变量 int x, y; auto int x, y; char c1; auto char c1; 函数调用时,定义变量,分配存储单元。 函数调用结束,收回存储单元。 全局变量:从程序执行开始,到程序的结束,存储单元始终保持。 变量生命周期 变量从定义开始分配存储

8、单元,到运行结束存储单元被回收的整个过程。,返回,外部变量 extern变量 外部变量说明: extern 数据类型 变量; 静态变量 static变量 静态变量说明: static 数据类型 变量;,返回,局部变量默认为auto型 register型变量个数受限,且不能为long, double, float型 局部static变量具有全局寿命和局部可见性 局部static变量具有可继承性 extern不是变量定义,可扩展外部变量作用域,变量存储类型,返回,例 静态局部变量示例,#include void fun (int k); int main (void) int k; for (k = 1; k = 3; k+) fun (k); return 0; void fun(int k) static int a; printf (“%d, “, a); a += k ; ,0,1,3,静态变量会记住前一次调用时留下来的值,静态变量的初值为0,返回,7.4 小结,怎样定义函数?如何调用函数?如何声明函数? 什么是函数的参数?在函数调用时,参数是如何传递的? 在使用函数的过程中,要注意哪些问题?怎样确定函数的参数? 如何使用局部变量和全局变量? 什么是静态变量?,返回,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号