【教学课件】第4章函数.ppt
《【教学课件】第4章函数.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章函数.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计湖南大学 杜四春、银红霞 第4章 函数 4.1 函数概述 4.2 函数的定义与声明 4.3 函数的调用 C+程序设计湖南大学 杜四春、银红霞C+语言认为函数是一个能完成某一独立功能的子程序,也就是程序模块。函数就是对复杂问题的一种“自顶向下,逐步求精”思想的体现。编程者可以将一个大而复杂的程序分解为若干个相对独立而且功能单一的小块程序(函数)进行编写,并通过在各个函数之间进行调用,来实现总体的功能。C+程序设计湖南大学 杜四春、银红霞4.1 函数概述 使用函数的优点:(1)可读性好;(2)易于查错和修改;(3)便于分工编写,分阶段调试;(4)各个函数之间接口清晰,便于相互间交换信息
2、和使用;(5)节省程序代码和存储空间;(6)减少用户总的工作量;(7)成为实现结构程序设计思想的重要工具;(8)扩充语言和计算机的原设计能力;(9)便于验证程序正确性。C+程序设计湖南大学 杜四春、银红霞设计C+程序的过程,实际上就是编写函数的过程,至少也要编写一个main()函数。执行C+程序,也就是执行相应的main()函数。即从main()函数的第一个左花括号“”开始,依次执行后面的语句,直到最后一个右花括号“”为止。如果在执行过程中遇到其他的函数,则调用其他函数。调用完后,返回到刚才调用函数的下一条语句继续执行。而其他函数也只有在执行main()函数的过程中被调用时才会执行。C+程序设
3、计湖南大学 杜四春、银红霞函数可以被一个函数调用,也可以调用另一个函数,它们之间可以存在着调用上的嵌套关系。但是,C+不允许函数的定义嵌套,即在函数定义中再定义一个函数是非法的。C+函数是一个独立完成某个功能的语句块,函数与函数之间通过输入和输出来联系。C+程序设计湖南大学 杜四春、银红霞4.2 函数的定义与声明在C+程序中调用函数之前,首先要对函数进行定义。如果调用此函数在前,函数定义在后,就会产生编译错误。为了使函数的调用不受函数定义位置的影响,可以在调用函数前进行函数的声明。这样,不管函数是在哪里定义的,只要在调用前进行函数的声明,就可以保证函数调用的合法性。C+程序设计湖南大学 杜四春
4、、银红霞4.2.1 函数的定义函数的定义 C+中的每一个函数都是从四个方面来进行定义:类型、函数名、形式参数表、函数体。定义一个函数的语法格式为:类型 函数名(形式参数表)函数体;C+程序设计湖南大学 杜四春、银红霞例如:intmax(inta,intb)intt;if(ab)t=a;elset=b;returnt;C+程序设计湖南大学 杜四春、银红霞类型就是该函数的类型,也就是该函数的返回值的类型,此类型可以是C+中除函数、数组类型之外的任何一个合法的数据类型,包括普通类型、指针类型和引用类型等。函数的返回值通常指明了该函数处理的结果,由函数体中的return语句给出。一个函数可以有返回值,
5、也可以无返回值(称为无返回值函数或无类型函数)。此时需要使用保留字void作为类型名,而且函数体中也不需要再写return语句,或者return的后面什么也没有。每个函数都有类型,如果在函数定义时没有明确指定类型,则默认类型为int。C+程序设计湖南大学 杜四春、银红霞函数名是一个有效的C+标识符,遵循一般的命名规则。在函数名后面必须跟一对小括号“()”,用来将函数名与变量名或其他用户自定义的标识符区分开来。在小括号中可以没有任何信息,也可以包含形式参数表。C+程序通过使用这个函数名和实参表可以调用该函数。主函数的名称规定取编译器默认的名称main()。C+程序设计湖南大学 杜四春、银红霞形式
6、参数表又称参数表,写在函数名后面的一对圆括号内。它可包含任意多个(含0个,即没有)参数说明项,当多于一个时其前后两个参数说明项之间必须用逗号分开。每个参数说明项由一种已定义的数据类型和一个变量标识符组成,该变量标识符称为该函数的形式参数,简称形参,形参前面给出的数据类型称为该形参的类型。每个形参的类型可以为任一种数据类型,包括普通类型、指针类型、数组类型、引用类型等。一个函数定义中的可以被省略,表明该函数为无参函数,若用void取代,则也表明是无参函数,若不为空,同时又不是保留字void,则称为带参函数。C+程序设计湖南大学 杜四春、银红霞是一条复合语句,它以左花括号开始,到右花括号结束,中间
7、为一条或若干条C+语句,用于实现函数执行的功能。注意:在一个函数体内允许有一个或多个return语句,一旦执行到其中某一个return语句时,return后面的语句就不再执行,直接返回调用位置继续向下执行。C+程序设计湖南大学 杜四春、银红霞函数形参也可以在函数体外说明。如下例:func1(inta,intb)也可写成:func1(a,b)inta;intb;C+程序设计湖南大学 杜四春、银红霞#includeiostream.hintfunc(intn)if(n0)return1;elseif(n=0)return0;elsereturn-1;voidmain()intn;coutPleas
8、einputn:n;coutntheresult:func(n)endl;例4-1:给出以下程序的运行结果。C+程序设计湖南大学 杜四春、银红霞此程序的运行结果为:Pleaseinputn:2theresult:1Pleaseinputn:-2theresult:-1C+程序设计湖南大学 杜四春、银红霞请注意:C+中不允许函数定义嵌套,即在函数定义中再定义一个函数是非法的。一个函数只能定义在别的函数的外部,函数定义之间都是平行的,互相独立的。例如:下面的代码在主函数中非法嵌套了一个f()函数定义:voidmain()voidf()/C+程序设计湖南大学 杜四春、银红霞4.2.2 函数的声明函数
9、的声明函数声明也称函数模型(或函数原型)。在主调函数中,如果要调用另一个函数,则须在本函数或本文件中的开头将要被调用的函数事先作一声明。声明函数,就是告诉编译器函数的返回类型、名称和形参表构成,以便编译系统对函数的调用进行检查。函数声明的一般格式为:函数类型 函数名(形式参数表);除了需在函数声明的末尾加上一个分号“;”之外,其他的内容与函数定义中的第一行(称函数头)的内容一样。C+程序设计湖南大学 杜四春、银红霞例如:设有一函数的定义为:doublefunc1(doublea,intb,floatc)函数体正确完整的函数声明应为:doublefunc1(doublex,inty,floatz
10、);/末尾要加上分号C+程序设计湖南大学 杜四春、银红霞也可以写为如下形式:doublefunc1(double,int,float);/函数声明中省略了形参名或写为如下形式:doublefunc1(doublea,intb,floatc);/函数声明中的形参名与/函数定义中的形参名不同C+程序设计湖南大学 杜四春、银红霞不能写为如下形式:doublefunc1(x,y,z);/函数声明中省略了形参类型或:func1(doublex,inty,floatz);/函数声明中省略了函数类型或:doublefunc1(inty,floatz,doublex);/函数声明中形参顺序调换了C+程序设计湖
11、南大学 杜四春、银红霞4.3 函数的调用 4.3.1 函数调用的格式:函数调用的格式:在C+中,除了主函数main由系统自动调用外,其他函数都是由主函数直接或间接调用的。函数调用的语法格式为:函数名(实际参数表);实参应该与函数定义中的形参表中的形参一一对应,即个数相等、次序一致且对应参数的数据类型相同或相容。每个实参是一个表达式,并且必须有确定的值。C+程序设计湖南大学 杜四春、银红霞如:g1(25)/实参是一个整数g2(x)/实参是一个变量g3(a,2*b+3)/第一个为变量,第二个运算表/达式g4(sin(x),)/第一个为函数调用表达式,第二/个为字符常量g5(&d,*p,x/y-1)
12、/分别为取地址运算、间接访问和/一般运算表达式 C+程序设计湖南大学 杜四春、银红霞常见的函数调用方式有下列两种:n方式一:将函数调用作为一条表达式语句使用,只要求函数完成一定的操作,而不使用其返回值。若函数调用带有返回值,则这个值将会自动丢失。例如:max(3,5);n方式二:对于具有返回值的函数来说,把函数调用语句看作语句一部分,使用函数的返回值参与相应的运算或执行相应的操作。例如:inta=max(3,5);inta=max(3,5)+1;coutmax(3,5)endl;if(f1(a,b)cout”true”endl;inta=2;a=max(max(a,3),5);C+程序设计湖南
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 函数
限制150内