C语言程序设计第4章函数.pptVIP

  • 14
  • 0
  • 约1.26万字
  • 约 72页
  • 2017-02-28 发布于湖北
  • 举报
C语言程序设计第4章函数

4.1 函数概述 这个程序由三个函数构成:main()、S()和L(),若按照模块化的观点看,这个程序由三个模块构成,每个模块由一个函数实现。 main( )、S ( )和L ( )的关系图 4.2 函数的定义 从用户使用的角度看,可将函数分为两种:标准函数(即系统库函数)和用户自定义函数 。 函数的定义格式: 类型标识符 函数名([形式参数表]) { 函数体 } 对于函数的定义格式要注意以下几点: 1.“类型标识符”用来说明函数返回值的类型。当函数的返回值为整型(int)时,也可以不加“类型标识符”,因为系统默认的返回类型是整型。 2.“函数名”是函数的存在标识,函数名可以是任何合法字符的组合,但注意不要与系统关键字同名。 3.“形式参数表”用于指明调用函数时,传递给函数的数据个数和类型。传递给函数的参数可以有多个,也可以没有。若有多个参数,则相邻参数之间要用逗号“,”间隔;若没有参数,则形式参数表为空,但要保留“函数名”后的一对括弧“()”。 4.函数若有多个参数,则必须在形式参数表中对每一个参数进行类型声明,格式为: “类型名1 形式参数名1 ,类型名2 形式参数名2 ,......,类型名n 形式参数名n”。 5.“函数体”就是函数的定义主体,包括变量声明、程序语句等。 例4.2:定义一个求和函数来说明函数的定义格式 /*定义了两个浮点型的形参x和y,函数返回类型为浮点型*/ float sum(float x , float y) { float z ; /* 定义一浮点型变量z */ z = x + y ; return(z) ; /* 将z的值作为函数sum的结果 */ } 4.3 函数的调用与返回值 函数定义好之后,要能够被调用(即执行函数),以完成该函数的功能。 函数的调用格式: 函数名([实际参数表]) 在函数的定义格式中,函数头为: 类型标识符 函数名([形式参数表]) 这里要注意的是“实际参数表”和“形式参数表”的区别。 4.3.1 实参与形参的区分 “形参表”是一种形式上的定义,或者说是一种“接口”描述,通过这个接口,调用者就知道应该给函数传递什么样的数据。 调用者在调用某函数时,通过接口传给函数的实际数据,叫做“实参”。通过下面的图,能较好地理解形参和实参的关系: # include stdio.h min(int x,int y) { int z; z = xy ? x : y ; return(z); } main ( ) { int a,b,c; scanf (“%d,%d”,a,b); c = min(a,b); printf (“Min is %d \n”,c); } 4.3.2 函数的调用 函数的调用方式有以下三种: 1.函数语句 把函数调用作为一个语句出现。这种调用方式无需函数有返回值,只要它完成某项功能。 2.函数表达式 当调用的函数有返回值时,有时会以表达式的方式调用该函数。 3.函数参数 函数调用作为一个函数的实参,这是实际当中用得较多的一种方式。 4.3.3 对被调用函数的声明 一个函数要获得对另一个函数的调用成功,除了参数要正确传递以外,还必须具备以下一些条件: 1.如果调用系统库函数,应在程序文件开头用#include命令将包含库函数定义信息的“头文件”嵌入到文件中来。 2.如果在程序中调用用户自定义函数,一般还应在程序中对被调函数进行“声明”。 # include stdio.h main() { float sum (float x , float y); float a,b,c ; scanf (“%f,%f”,a,b); c = sum(a,b); printf(“Sum is %f \n ”, c); } float sum (float x , float y) { float z ; z = x + y ; return(z) ; } 函数原型有两种写法: 1.类型标识符 函数名(参数类型1,参数类型2…….) 2.类型标识符 函

文档评论(0)

1亿VIP精品文档

相关文档