- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 函数 函数是C语言程序的基本模块,由于采用了函数模块式的结构,C语言易于实现结构化程序设计,使程序的结构清晰、减少重复编写程序的工作量、提高程序的可读性和可维护性。 6.1 函数概述 如果软件可划分为可独立命名和编程的部件,则每个部件称为一个模块。 模块化就是把系统划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,从而完成指定的功能,满足问题的要求。 6.1.2 函数的概念 根据模块化设计的原则,一个较大的程序一般应分为若干个程序模块,每一个模块用于实现一个特定的功能。 在不同的程序设计语言中,模块实现的方式有所不同。在C语言中,模块用函数来实现。 在C语言中,函数分为以下两种: (1)标准库函数 这种函数用户不必定义,但可直接使用。例如scanf()、 printf()、fabs()、sprt()、exp()、sin()、cos()等都是C语言中常用的库函数。 (2)用户自己定义的函数 这种函数用以解决用户的专门问题,一般由用户自己编写。 6.2 函数的定义与声明 当用户需要利用函数来完成某一个特定的任务,又没有相应的库函数可以使用时,就必须自定义一个函数来完成任务。 要在C语言中使用用户自定义的函数,必须遵循先定义、后声明、再使用的步骤,即首先应定义好函数的数据类型、存储类型和函数体,然后才能使用。 6.2.1 函数定义 函数定义的一般形式: [函数类型] 函数名 ([形式参数表]) /* 函数头 */ { [声明部分] [执行语句] } 一个函数(定义)由函数头(函数首部)和函数体两部分组成。 (1)函数头(首部):说明函数类型、函数名称及参数。 1)函数类型:函数返回值的数据类型,可以是基本数据类型也可以是构造类型。如果省略则默认为int类型,如果不返回值,则定义为void类型。 2)函数名:给函数取的名字,以后用这个名字调用。函数名由用户命名,命名规则与标识符相同。 3)函数名后面是形式参数表,也可以没有参数,但“( )”号不能省略,这是格式的规定。形式参数表说明形式参数的类型和形式参数的名称,各个形式参数之间用“,”分隔。 (2)函数体:函数头下方用一对{}括起来的部分。如果函数体内有多个{},最外层是函数体的范围。函数体一般包括声明部分和执行部分。 1)声明部分:定义本函数所使用的变量和进行有关声明(如函数声明)。 2)执行部分:程序段,即由若干条语句组成的命令序列(可以在其中调用其他函数)。 注意:函数不能单独运行,函数可以被主函数或其他函数调用,也可以调用其他函数,但是不能调用主函数。 6.2.2 函数的参数和返回值 函数的参数分为形式参数和实际参数两种。 形式参数(形参):函数定义时设定的参数。 实际参数(实参):调用函数时所使用的实际的参数。 形参和实参的功能是进行数据传递。 发生函数调用时,主调函数把实参的值传递给被调函数的形参,从而实现主调函数向被调函数的数据传递。 C语言可以从函数(被调用函数)返回值给调用函数(这与数学函数相当类似)。 在函数内是通过return语句返回值的。 使用return语句能够返回一个值或不返回值(此时函数类型是void)。 return语句的格式为: return [表达式];或return(表达式); 6.2.3 函数的声明 函数定义的位置可以在调用它的函数之前,也可以在调用它的函数之后,甚至可位于其他的源程序模块中。 若函数定义位置在前,函数调用在后,不必声明,编译程序产生正确的调用格式。 若函数定义在调用它的函数之后或者函数在其他源程序模块中,且函数类型不是整型,这时,为了使编译程序产生正确的调用格式,可以在函数使用前对函数进行声明。 函数声明的格式为: 函数类型 函数名([形式参数表]); .h文件内许多都是函数声明,当源程序要使用库函数时,就应当包含相应的头文件。 6.3 函数的调用 一个函数调用另一个函数称为函数调用,其调用者称为主调函数,被调用者称为被调函数。 6.3.1 调用函数的一般形式 C语言中,函数调用的一般形式为: 函数名([实参表列]); 说明: (1)无参函数调用没有参数,但是“( )”不能省略,有参函数若包含多个参数,各参数用“,”分隔,实参参数个数与形参参数个数相同,类型一致或赋值兼容。 (2)函数调用可以出现的位置如下: 1)以单独语句形式调用(注意后面要加一个分号,构成语句)。以语句形式调用的函数可以有返回值,也可以没有返回值。 2)在表达式中调用(后面没有分号)。在表达式中的函数调用必须有返回值。 6.3.2 调用函数时数据的传递 在调用函数时,主调函数和被调函数之间有数据的传递——实参传递给形参。 具体的传递方式有两种: (1
您可能关注的文档
- C语言程序设计(第二版) 教学课件 作者 王宏志,韩志明主编 C语言程序设计10.ppt
- C语言程序设计(第二版) 教学课件 作者 王宏志,韩志明主编 C语言程序设计11.ppt
- C语言程序设计(第二版) 教学课件 作者 王宏志,韩志明主编 C语言程序设计12.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap1 C语言概述.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap2 基本数据类型与运算.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap3 算法与基本程序设计.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap4 选择结构程序设计.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap5 循环结构程序设计.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap6 数组.ppt
- C语言程序设计(第二版) 教学课件 作者 王曙燕 chap7 函数.ppt
文档评论(0)