- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计与数据结构 第六章 函数 总体要求: 掌握自定义函数的一般结构及定义函数的方法; 掌握形参、实参、函数原型等重要概念; 掌握函数声明、函数调用的一般方法; 了解局部变量、全局变量的概念; 掌握auto型和static型局部变量的特点和用法。 学习重点: 区分函数定义、函数说明的区别; 理解参数传递的意义。 在高级语言程序设计中往往将一个较大的程序分解成若干较小的、功能单一的程序模块来完成特定的功能,称其为子程序。通过对这些子功能的组织和调用,来实现整个程序的功能要求。C语言中,这些功能比较独立的子程序成为函数。函数是C语言程序的一种基本组成部分,C语言程序的功能是通过函数之间的调用来实现的,一个完整的C语言程序可由一个或多个函数组成,每个函数都有一个函数名。 为什么使用函数? 第一,使用函数可以省去写重复代码。如果程序中要多次使用某种特定的功能,那么只需编写一个合适的函数即可。程序可以在任何需要的位置调用该函数,并且同一个函数可以在不同的程序中调用,就像在很多程序中使用printf()函数一样。 第二,即使某种功能在程序中只使用一次,将其以函数的形式来实现也是必要的,因为函数使得程序更加模块化,从而有利于程序的阅读、修改和完善。 C语言函数设计的一般原则为: (1)界面清晰。函数的处理任务明确,函数之间数据传递越少越好。 (2)大小适中。函数太大,处理任务复杂,导致结构复杂,程序可读性差;反之,若函数太小,则程序调用关系复杂,这样会降低程序的效率。 6.1函数分类 在C语言中,从用户使用的角度看,函数可分为库函数和用户自定义函数两种。 C语言提供了极为丰富的库函数,如前几章例题中反复用到的scanf()、printf()、getchar()等函数均属于库函数。这类函数是由系统提供并定义好的,不必用户再去定义,用户只需掌握函数的功能,并学会正确调用这些函数即可,至于函数内部是如何实现这些功能的,用户不必知道。但是,仅有C语言的库函数在实际编程中往往是不够用的,这就需要用户按需要定义和编写自己的函数来解决某些问题。 事实上,一个具备一定规模C程序往往由多个函数组成。其中必有一个名为main的主函数,由main来调用其他函数。必要的话,其他函数还可以调用另外的函数。同一个函数可以被多个函数调用一次或者多次。 从总的框架来看,是将一个大的计算任务划分为一个一个小的任务,这些小的任务均由函数来完成。而函数既可以是C的标准库函数,也可以是用户自定义函数。 注意:函数必须先定义,后调用。 6.1.1函数分类 从函数定义的角度看,函数可分为库函数和用户定义函数两种 C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。 从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。 C语言提供了极为丰富的库函数 还应该指出的是,在C语言中,所有的函数定义,包括主函数main在内,都是平行的。 也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。习惯上把调用者称为主调函数。 函数还可以自己调用自己,称为递归调用。main 函数是主函数,它可以调用其它函数,而不允许被其它函数调用。 因此,C程序的执行总是从main函数开始,完成对其它函数的调用后再返回到main函数,最后由main函数结束整个程序。一个C源程序必须有,也只能有一个主函数main。 6.1.2 文件包含 文件包含是C预处理程序的一项重要功能。 文件包含命令行的一般形式为: #include 文件名 在前面我们已多次用此命令包含过库函数的头文件。例如: #include stdio.h 文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。被读入的源文件必须用双引号或尖括号括起来。 在程序设计中,文件包含是很有用的。一个大的程序可以分为多个模块,由多个程序员分别编程。有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用。这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错。 对文件包含命令还要说明以下几点: 1.包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。例如以下写法都是允许的: #include stdio.h #include math.h 但是这两种形式是有区别的:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找; 使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中
文档评论(0)