文档详情

模块化程序设计与语言函数.ppt

发布:2025-02-07约2.15万字共66页下载文档
文本预览下载声明

外部变量与局部变量之间的同名屏蔽外部变量与局部变量同名时,自动屏蔽同名外部变量。为此,C语言提供了外部变量作用域的扩展技术,以便将外部变量的作用域进行文件内部的扩展和文件之间的扩展。①外部变量的作用范围在声明文件内扩展*例6-23*(P156)②外部变量只限定在声明文件中引用*static将外部变量限定在本文件引用(静态外部变量),在其他文件中不能引用。例*:(P155图6-25)③外部变量的作用域扩大到其他文件*例6-24*(P157)第62页,共66页,星期六,2024年,5月外部变量的副作用问题例6-25外部变量使用不当时的副作用。#includestdio.hinti;voidprt(void);intmain(void){for(i=0;i5;i++)prt();return0;}/*Endofmain()*/voidprt(void){for(i=0;i5;i++)printf(%c,*);printf(\n);return;}/*Endofprt()*/当程序规模增大、模块越来越多时,模块间的联系和依赖会越来越多,模块本身的独立性将急剧下降。外部变量使用不小心会带来更多的模块设计及系统集成逻辑错误。过多使用外部变量还会造成计算机资源的浪费和紧张。在系统设计和实现时应尽量有条件地运用外部变量。第63页,共66页,星期六,2024年,5月6.4模块化程序设计实例例6-26**求n个数的最小者并记录其在原始序列中的序号。要求n在运行时输入。例6-27*以例6-3为基础,给出根据输入参数打印不同形状九九表的程序。第64页,共66页,星期六,2024年,5月小结模块化和结构化程序设计是面向过程程序设计技术的重要方法学内容。抽象、分解、自顶向下的逐步求精和模块划分的独立性等特性是基于模块化问题求解和程序设计的基本方法。掌握函数的声明、定义和调用等方法。掌握与程序模块相关的变量存储属性。熟练运用、掌握模块化程序设计和实现的具体方法和过程。主要知识点:第65页,共66页,星期六,2024年,5月TheEnd第66页,共66页,星期六,2024年,5月形参与实参形参:定义函数时函数名后面括号中的变量名实参:调用函数时函数名后面括号中的表达式c=max(a,b);main()max()intmax(intx,inty){intz;z=xy?x:y;return(z);}/*Endofmax()*/例比较两个数并输出大者。#includestdio.hintmax(intx,inty);intmain(void){inta,b,c;scanf(%d,%d,a,b);c=max(a,b);printf(Maxis%d,c);}/*Endofmain()*/intmax(intx,inty){intz;z=xy?x:y;return(z);}/*Endofmax()*/形参实参第30页,共66页,星期六,2024年,5月说明:实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换——函数调用转换形参在调用前不占内存;调用执行时为形参分配内存;调用结束,释放空间。其存储空间是不固定的且值是不可继承的实参是特定存储空间中的值,在调用期间值不会发生变化且存储空间相对固定第31页,共66页,星期六,2024年,5月例6-7形参和实参的虚实结合实例。#includestdio.hfloataverage(floatval_1,floatval_2,floatval_3){ floatave; ave=(val_1+val_2+val_3)/3.0; returnave;}/*Endofaverage()*/intmain(void){ floatx=1,y=2,z=3,q=4,t=5; floatave_1,ave_2; ave_1=average(x,y,z); printf(ave_1=%f\n,ave_1); ave_2=average(x,q,t); printf(ave_2=%f\n,ave_2); return0;}/*Endofmain()*/654706547465486654906549465478

显示全部
相似文档