资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言程序设计教程,6.1 函数的定义,1无参函数的定义形式 类型标识符 函数名() 声明部分 语句 其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。 该类型标识符与前面介绍的各种说明符相同。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。,第六章 函数,2有参函数的定义形式 函数类型 函数名( 数据类型 参数,数据类型 参数2 ) 声明部分 语句 return (表达式) 或return 表达式 有参函数比无参函数多了一个内容,即参数表列。在参数表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。,第六章 函数,6.2 函数调用,C程序总是从主函数开始执行,其他函数只有在被主函数或其他正在执行的函数调用时才能被执行,执行后返回调用函数,最后返回到主函数,在主函数中结束整个程序的运行。 C语言中,函数调用的一般形式为: 函数名(实际参数表) 对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其他构造类型数据及表达式。各实参之间用逗号分隔。 该语句的功能是:先计算实参表达式的值,然后依次把实参的值传递给对应的形参,最后将程序转向函数定义时的函数体去执行函数功能。,第六章 函数,(1)主调函数传给被调函数形参的数据称为实参,可以是常量、变量、函数或表达式。如果函数没有形参,则调用时不用加实参,但括号不能省略。 int x5,y-8,z1,z2,z3; z1max(x,y); /*变量做实参 */ z2max(xy,abs(y); /*表达式和函数做实参 */ z3max(-6,0); /*常量做实参 */,第六章 函数,(2)实参和形参必须个数相等、类型一致、顺序对应,进行数据的“值传递”。特别要注意的是:函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。,第六章 函数,(3)函数同变量一样,在调用前应该在主调函数中事先说明,即“声明”。 声明的方法是在主调函数前或函数体声明部分加上被调函数的“函数原型”,即函数定义的第一行。如: int max(int a,int b); 声明时可省略形参名,如下形式也可以: int max(int,int);,第六章 函数,(4)有返回值的函数一般出现在表达式中,没有返回值的函数一般出现在单独的语句中。 (5)函数间可以互相调用,但是不能调用主函数。 (6)函数的嵌套调用。 C语言中的函数不能嵌套定义,但是可以嵌套调用,即在调用一个用户自定义函数的执行过程中,该函数又调用另一个用户自定义函数。其执行过程与主函数调用用户自定义函数的执行过程一样。,第六章 函数,6.3 函数的返回值,函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。对函数的值(或称函数返回值)有以下一些说明: (1)函数的值只能通过return语句返回主调函数。 return语句的一般形式为: return表达式; 或者为: return(表达式); 该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。,第六章 函数,函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。对函数的值(或称函数返回值)有以下一些说明: (2)函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。 (3)如函数值为整型,在函数定义时可以省去类型说明。 (4)不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。,第六章 函数,6.4 函数的说明,在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。 其一般形式为: 类型说明符 被调函数名(类型 形参,类型 形参); 或为: 类型说明符 被调函数名(类型,类型);,第六章 函数,THANK YOU !,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号