- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 函数 信息工程学院 函数 6.1 概述 6.2 函数定义和返回值 6.3 函数的调用 6.4函数的嵌套调用 6.5函数的递归调用 6.6局部变量和全局变量 6.7变量的存储类别 6.8内部函数和外部函数 C语言程序由一个主函数或多个函数组成,函数是完成某一功能的程序段,是程序的基本组成成分。从用户的使用角度看,C语言中的函数分为系统函数和用户函数。系统函数也称标准函数或库函数,它是由系统提供的,用户不必定义这些函数,可以直接使用它们。不同的C系统提供的库函数的数量和功能是不同的,当然有一些基本的函数是共同的。用户函数是用户自己定义的,用以解决用户的专门需要。 从函数的形式看,函数分为无参函数和有参函数。 6.2 函数定义和返回值 C语言中的所有函数与变量一样,在使用之前必须说明。所谓说明就是指说明函数是什么类型的函数,一般库函数的说明都包含在相应的头文件“*.h”中,标准的输入/输出函数包含在“stdio.h”中,非标准输入/输出函数包含在“io.h”中,以后在使用库函数时必须先知道该函数包含在哪个头文件中,在程序的开头用#include*.h或#include“*.h”说明。 6.2.1 函数的说明 函数说明的一般形式为 函数类型 函数名(数据类型 形式参数1,数据类型 形式参数2,…,数据类型 形式参数n); 其中,函数类型是该函数返回值的数据类型,可以是整型、长整型、单精度类型、双精度类型、字符型以及无值型(表示函数没有返回值)。 int max(int a,int b); /*说明一个整型函数*/ float min(float m,float n); /*说明一个浮点型函数*/ void stu(int p,int q); /*说明一个不返回值的函数*/ 6.2.2 函数的定义 函数的定义格式有两种:传统格式和现代格式。传统格式是早期编译系统使用的格式,现代格式则是现代编译系统的格式。本书建议使用现代格式。现代格式在形参表中既说明其名称又说明其类型。传统格式只在形参表中说明形式参数的名称,而把其类型说明放在函数名和函数体左花括号之间。具体定义的语法格式如下所示。 1.现代格式 函数的类型说明 函数名(带有类型说明的参数表) { 函数体;} 2.传统模式 函数的类型说明 函数名(不带有类型说明的参数表) 参数的类型说明; { 函数体; } 对函数定义中的各个部分的说明如下。 (1)函数名。函数名是编译系统识别函数的依据,除了main(?)函数有固定名称外,其他函数由用户按标识符的规则自行命名。函数名与其后的圆括号之间不能留空格,编译系统依据一个标识符后有没有圆括号来判定它是不是函数。函数名是一个常数,代表该段程序代码在内存中的首地址,也叫做函数入口地址。 (2)函数的形式参数。函数的形式参数也称为形参,用来建立函数之间的数据联系,它们被放在函数名后面的圆括号中。当一个函数被调用时,形参接收来自调用函数的实在参数(也称实参),实现函数与函数之间的数据通信,称为虚实结合。形参可以是变量、数组、指针,也可以是函数、结构体、联合等,当形参有多个时,相互之间用逗号隔开。 (3)函数的数据类型。函数的数据类型指的是该函数返回值的类型,可以是char、int、float、double、指针等。如果省略函数的数据类型,则默认为int型。如果return中的表达式类型与函数类型不一致,则编译系统自动将表达式的类型转换成函数的类型后返回。 无返回值的函数可以定义为无值类型。在传统格式中,定义无值类型时,函数名前不加任何关键字;在现代格式中,则加上关键字void。例如: void print(float x,float y) void input(void) (4)函数的存储类型。函数的存储类型用来标识该函数能否被其他程序文件中的函数调用。当一个程序文件中的函数允许被另一个程序文件中的函数调用时,可以将它定义成extern型,否则,就要定义成static型。如果在函数定义时默认存储类型,则为extern。 (5)函数体。函数体是函数实现特定处理功能的语句集合,其形式与main(?)函数完全相同。C语言允许一个函数调用另一个函数,但不允许在一个函数体内再定义另一个函数。 6.2.3 有参函数、无参函数的定义 1.有参函数的定义 有参函数定义的一般形式为 类型标识符 函数名 (数据类型 形式参数1,数据类型 形式参数2,…数据类型 形式参数n) { 函数体; } int max(int a,int b,int c) { int max; max=a; if(ab) max=b; if(maxc
文档评论(0)