C语言程序设计姜海涛C语言程序设计第五章节.pptVIP

  • 1
  • 0
  • 约1.29万字
  • 约 92页
  • 2018-01-21 发布于广东
  • 举报

C语言程序设计姜海涛C语言程序设计第五章节.ppt

第五章 函数 主要内容 本章要点 函数定义和函数返回值 函数调用与参数传递、函数原型 函数的递归调用 变量的作用域和存储类别 本章学习目标 了解模块化设计方法 掌握函数定义和函数原型说明的方法及二者的区别 掌握函数的参数传递方式与函数调用方法 了解函数的递归调用 理解掌握变量的作用域和存储类的概念 5.1 什么是函数 在C语言中,函数就是组合在一起的一系列语句,并且可以通过一个名字调用它。 函数这个术语来自于数学 f(x)=x2+2x+1, 其中f是函数名,x是自变量,f(x)是对应于自变量x的函数值,式子x2+2x+1则给出了由x值得到f(x)值的计算规则。 数学函数中的自变量在C语言中通常称为函数参数。 C语言中的函数可以没有参数,也可以不返回函数值。 5.2 函数的定义和调用 5.2.1计算两个实数的平均值 5.2 函数的定义和调用(续) 5.2.2 显示提示信息 5.2.3 函数的定义 函数定义的一般形式: 类型 函数名 (形式参数列表) { 声明 语句 } 函数的定义可以分为两部分,函数首部和函数体。 5.2.3 函数的定义(续) 在函数首部通常依次包含函数类型、函数名及形式参数的定义。 类型指定是函数返回值的类型。函数可以有,也可以没有返回值。如果忽略函数返回值类型,则返回值类型为int类型。如果函数没有返回值,应该将类型定义为void。 形式参数列表依次说明了每个形参的类型和名称。函数可以有多个形参,也可以没有形参。多个形参之间用逗号分隔。即使没有形参,这一对括号也不能省略。 5.2.3 函数的定义(续) 函数的函数体中可以包含内部变量的定义和执行语句,它给出了函数功能实现的细节。 函数体也可以为空 void showinfo( ) { } 5.2.4 return语句 return语句的作用是从被调用函数返回到主调函数中产生调用的地方。return语句会结束被调用函数的执行,使程序返回到主调函数中去执行。此外,使用return语句,还可以带回一个函数返回值。 对于非void类型的函数必须使用return语句给出函数的返回值。return语句的语法格式为: return 表达式; 这里的表达式有时是常量或变量,有时是复杂的表达式。return语句返回表达式的值。 5.2.4 return语句(续) 5.2.4 return语句(续) 如果return语句中表达式的类型和在函数首部指定的返回值类型不一致,那么系统会把表达式的类型隐式转换成返回值类型。例如: int ave(float a, float b) { float c; c=(a+b)/2; return c; } 例如函数调用ave(1.0,2.0)的返回结果为1。 5.2.5 函数的调用 函数调用的格式为: 函数名(实际参数列表) 多个实际参数用逗号分隔。 实际参数表示要传递给被调函数的数据。实参可以是变量、常量或任何正确的表达式。 实参的个数应和形参的个数相同,并且实参要和对应的形参类型一致,否则将自动进行类型转换,当然也可以在调用时,使用强制类型转换来使实参的类型与形参一致。 调用没有形参的函数也不需要提供实参,小括号内可以为空,但小括号是必须的。 5.2.5 函数的调用(续) 对于void类型的函数,其函数调用是一个语句 showinfo( ); 对于非void类型的函数,其调用可以包含在表达式中,其函数返回值可以赋值给变量,或用于接下来的运算,或用于输出,或其他用途。 ave=average(a,b); sum=average(a,b)+average(c,d); printf(“%f”,average(a,b)); average(a,b); 5.3 函数的声明 前面的程序总是把被调函数的定义放在main函数之前,也就是放在函数调用出现之前。实际上C程序中的函数是没有固定顺序的。可以将被调函数的定义放在函数调用之后。例如程序5-3。 5.3 函数的声明(续) 这时,C语言要求在函数调用前对被调函数进行声明。这样可以帮助编译器进行更全面、更严格的语法检查,避免一些程序错误。 程序5-3增加函数声明后得到的程序如下。 5.3 函数的声明(续) 可以看出,函数声明类似于函数定义的首部,区别是后面要带有一个分号。 函数声明的格式为: 类型 函数名(形式参数列表); float average(float a,float b); 或 float average(float ,float ); 5.3 函数的声明(续) 函数声明即可放在函数体外,也可以放在函数体内。在程序5-4中,对average函数的声明也可以放在main函数体内。 此时,函数声明仅对main函数有效,其它函数

文档评论(0)

1亿VIP精品文档

相关文档