资源描述:
《函数调用函数原型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章函数-1C语言程序设计内容提要函数定义、函数调用、函数原型、函数返回值难点:函数的参数传递与返回值程序调试代码风格变量的作用域与存储类型模块化程序设计Skill:用函数编程求解问题的能力程序排错与调试的能力数学中的函数自变量因变量函数名说明自变量与因变量的映射关系程序设计中的函数程序设计中的函数不局限于计算计算类,如打印阶乘表的程序……判断推理类,如排序、查找……请问读多少行的程序能让你不头疼?假如系统提供的函数printf()由10行代码替换,那么你编过的程序会成什么样子?实际上一个printf()有上千行代码main()中能放多少行
2、代码?如果所有代码都在main()中,怎么团队合作?如果代码都在一个文件中,怎么团队合作?程序设计的艺术“事无巨细”,“事必躬亲”管理学的观点是极其排斥这种做法的,认为工作必须分工,各司其职其中的思想,在程序设计里也适用分而治之(DivideandConquer,Wirth,1971)函数把较大的任务分解成若干个较小的任务,并提炼出公用任务程序设计的艺术信息隐藏(InformationHiding,Parnas,1972)设计得当的函数可以把具体操作细节对程序中不需要知道它们的那些部分隐藏掉,从而使整个程序结构清楚使用函数时,不用知道这个函数
3、内部是如何运作的,只按照我们的需要和它的参数形式调用它即可函数是C语言中模块化编程的最小单位可以把每个函数看作一个模块如把编程比做制造一台机器,函数就好比其零部件可将这些“零部件”单独设计、调试、测试好,用时拿出来装配,再总体调试。这些“零部件”可以是自己设计制造/别人设计制造/现成的标准产品函数(function)和模块(module)函数(function)和模块(module)若干相关的函数可以合并成一个“模块”一个源程序文件由一个或多个函数组成一个C程序由一个或多个源程序文件组成C程序结构函数的分类函数生来都是平等的,互相独立的,没有
4、高低贵贱和从属之分main()稍微特殊一点点C程序的执行从main函数开始调用其他函数后流程回到main函数在main函数中结束整个程序运行函数的分类库函数ANSI/ISOC定义的标准库函数符合标准的C语言编译器必须提供这些函数函数的行为也要符合ANSI/ISOC的定义第三方库函数由其它厂商自行开发的C语言函数库不在标准范围内,能扩充C语言的功能(图形、网络、数据库等)自定义函数自己编写的函数包装后,也可成为函数库,供别人使用函数定义(definition)类型函数名(类型参数1,类型参数2,……){函数体;return表达式;}返回值类
5、型函数名标识符说明运算规则参数表相当于运算的操作数返回值是运算的结果函数出口函数定义(definition)类型函数名(类型参数1,类型参数2,……){函数体;return表达式;}函数体的定界符参数表里的变量(叫形式参数,parameter)也是内部变量例5.1a计算两个整数的平均数/*函数功能:计算平均数函数入口参数:整型x,存储第一个运算数整型y,存储第二个运算数函数返回值:平均数*/intAverage(intx,inty){intresult;result=(x+y)/2;returnresult;}返回值类型函数名说明函数的功
6、能返回值作为函数调用表达式的值形参表,函数入口函数内部可以定义只能自己使用的变量,称内部变量函数定义(Functiondefinition)void函数名(void){函数体;return;}函数没有运算结果,无返回值,用void定义返回值类型用void定义参数,表示没有参数return语句后不需要任何表达式函数调用(Functioncall)函数名(表达式1,表达式2,……);调用函数时,提供的表达式叫实际参数(argument)有返回值时放到一个数值表达式中c=max(a,b);作为另一个函数调用的参数c=max(max(a,b),c
7、);printf("%d",max(a,b));无返回值时函数调用表达式display(a,b);返回值=函数名(实参表列);函数名(实参表列);函数的每次执行都会建立一个全新的独立的环境在“栈”中为函数的每个变量(包括形式参数)分配内存把实参值复制给形参开始执行函数内的第一条语句main(){inta=12,b=24,ave;…ave=Average(a,b);……}intAverage(intx,inty){intresult;result=(x+y)/2;returnresult;}①函数调用的过程y?x?result?b24a12
8、ave?1224函数内的代码在这个独立的环境内工作当函数执行到return语句或}时函数退出程序从当次调用函数的地方继续执行函数可有多个return,但最好只有一个