- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 函数 本章要点: ●??掌握函数的定义,函数的说明和函数的调用。 ●?掌握函数参数的普通值传递和地址值(指针值)传递。 ●?掌握函数的嵌套调用和递归调用。 ●?掌握数组作为函数参数。 ●?掌握函数指针及其应用。 ●?理解变量的作用域和存储类别。 ● 理解外部函数和内部函数的概念。 ●了解编译预处理命令(文件包含、宏定义和条件编译)的知识。 7.1 概述 为了使程序大而不繁,简洁明了,设计者要根据软件的总体要求,把相同功能或相似功能的操作归纳成模块的形式,并设计成函数,以实现程序设计的模块化。函数是C程序的重要成份,它封装了完成某一特定功能的程序代码和数据,实现较高级的抽象。 函数从使用的角度可分自定义函数和系统的库函数;从函数有无参数的角度可分有参函数和无参函数;从有无返回值的角度可分有返回值函数和无返回值函数;而返回值是指针的函数又称指针型函数等。设计者根据具体情况定义不同种类的函数。 C语言的库函数放在不同的头文件中,例如常用的输入输出函数放在stdio.h头文件中;数学函数放在math.h头文件中;有关字符串处理函数放在string.h头文件中;屏幕处理函数放在conio.h头文件中;图形处理函数放在graphics.h头文件中等等。设计者尽量使用现成的库函数,以节约程序的开发时间。 学习本章的目的主要在于懂得编写不同类型的函数(函数的设计)和函数原型的说明以及函数调用方面的基本知识。此外,本章还谈及变量的作用域和存储类别,以便对变量有一个进一步的认识。最后还介绍了编译预处理命令。 7.2 函数的定义 函数定义的一般格式是: 函数值类型 函数名(参数说明表) { 函数体 } 其中函数值类型指函数返回值的数据类型。若函数不需要返回值,则函数值类型可选void;函数名的选用跟标识符相同;参数说明表用来说明完成函数功能所需传递的参数及它们的数据类型,这些参数在设计函数时往往还没有具体的数值,因此这些参数也称形式参数(简称形参)或虚拟参数(简称虚参);函数体的设计跟主函数体相同,即函数可以有自已的变量或数组的说明,各种各样的语句结构和操作等。 函数可以没有类型和没有参数,此时函数值类型和参数用void表示,例如完成打印一行60个*号的函数,可定义成: void print(void) { int i ; for(i=0;i60;i++) printf( %c, * ) ; } 如果一行里要打印n个某字符的函数,那就要定义成有参数的函数: void print(int n,char ch) { int i; for(i=0;in;i++) printf(%c, ch ); } 以上两个函数功能都是完成某种特定的操作后无需返回值,所以函数值类型都是void,同属无返回值函数。但是从有无参数的角度,前者是无参函数,后者是有参函数。 又如求m以内奇数之和的函数,可定义成: long sum(int m) { int i; long s=0; for(i=1;im;i+=2) s=s+i; return s; /*返回语句 */ } 返回语句的一般形式是: return 表达式; 函数经过调用后返回return后面表达式的值。当没有返回值(无返回值函数)时,返回语句可以没有,也可以写成: return; 注意,有返回值的return语句,其执行过程是先计算表达式的值,若该值的类型与函数值类型相同,直接返回调用函数,若该值类型和函数值类型不同,则系统把它自动转换为与函数值类型相同后返回,这种转换是强制性的,当函数类型所含字节数小于表达式数据类型所含字节数时,可能出现不保值的情况。 void类型函数可以有return语句,也可以没有return语句。没有return语句时,函数执行到函数体的最后那个右花括号时,自动返回调用函数,即函数体的最后那个右花括号也有return语句的作用,如上述的print()函数。 另外,函数中有可能根据条件执行不同的模块,也就是说,在不同的模块中可有各自的return语句。这样在函数中就会出现多个return语句,这是允许的,但是每次执行函数只可能有一个return语句起作用。 当函数要返回指针时,函数名前加*号,如连
您可能关注的文档
最近下载
- 电气装置安装工程电气设备交接试验gb50150.docx VIP
- 红旗-红旗H7-产品使用说明书-红旗H7PHEV-CA7200PHEVA-H7PHEV用户手册.pdf VIP
- 中新初中医疗服务管理制度模板(二篇).doc VIP
- 燃气安装工程施工分包合同8篇.docx VIP
- 医院标准预防与隔离技术考试题(附答案).docx VIP
- 语文人教版五年级上册圆明园资料搜集整理.docx VIP
- 2025年版手卫生规范考核试题(附答案).docx VIP
- 智能变电站继电保护系统调试.docx
- 冬季传染病预防PPT(完整版).pptx VIP
- IPC4552B+中文+2021+印制板化学镀镍+浸金(ENIG)镀覆性能规范.docx
原创力文档


文档评论(0)