- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八讲 C语言函数精要
一、函数概述 首先,什么是函数?函数(function)是用于完成特定任务的程序代码的自包含单元。尽管C中的函数和其他语言中的函数、子程序或子过程等扮演着相同的角色,但是在细节上会有所不同。某些函数会导致执行某些动作,比如printf()可使数据呈现在屏幕上;还有一些函数能返回一个值以供程序使用,如strlen()将指定字符串的长度传递给程序。一般来讲,一个函数可同时具备以上两种功能。 为什么使用函数?第一,函数的使用可以省去重复代码的编写。如果程序中需要多次使用某种特定的功能,那么只需要编写一个合适的函数即可。程序可以在任何需要的地方调用该函数,并且同一个函数可以在不同的程序中调用,就像在许多程序中需要使用putchar()一样。第二,即使某种功能在程序中只使用一次,将其以函数的形式实现也是有必要的,因为函数使得程序更加模块化,从而有利于程序的阅读,修改和完善。 示例程序 我们需要掌握如何正确定义函数、如何调用函数和如何建立函数间的通信。为了让您对这些有一个清晰的思路,我们首先来看一个非常简单的例子: #includestdio.h #define NAME No.83 Middle School #define ADDRESS 151 Xianning zhonglu #define PLACE Xian Shannxi #define WIDTH 50 void starbar(void); int main(void) { starbar(); printf(%s\n,NAME); printf(%s\n,ADDRESS); printf(%s\n,PLACE); starbar(); return 0; } void starbar(void) { int i; for(i=1;i=WIDTH;i++) putchar(*); putchar(\n); } 程序输出如下: ************************************************** No.83 Middle School 151 Xianning zhonglu Xian Shannxi ************************************************** 程序分析 Starbar标识符在不同位置被使用了3次:①函数原型(function prototype)告知编译器starbar()的函数类型,②函数调用(function call)导致该函数的执行,③函数定义(function definition)则确切指定了该函数的具体功能。 函数同变量一样具有多种类型。任何程序在使用函数之前都需要声明该函数的类型。因此,在main()函数的定义之前出现了如下的函数原型 void starbar(void); 圆括号表明starbar是一个函数名。第一个void指的是函数类型;它的意思是该函数没有返回值。第二个void(位于圆括号内)表明该函数不接受任何参数。分号的作用是表示该语句是进行函数的声明而不是函数定义。也就是说,这一行声明了程序将使用一个名为starbar()且函数类型为void的函数,同事通知编译器需要在其他位置找到该函数的定义。 程序把starbar()原型置于main()之前;也可以将其置于main()之内,可以放置在变量声明的任何位置。这两种方法都正确。 程序在main()中通过使用函数名后跟圆括号和分号的格式调用函数starbar(),语句如下: starbar(); 这是void类型函数的一般调用形式。当计算机执行到starbar();语句时,它找到starbar()函数并执行其中的指令。执行完starbar()中的代码后,计算机返回到调用函数(calling function)的下一行继续执行。在本例中,调用函数式main()。如下图所示。 程序中starbar()和main()具有相同的定义格式,即首先以类型、名称和圆括号开始,接着是开始花括号、变量声明、函数语句定义以及结束花括号。注意此处的starbar()后没有分号,这告诉编译器是在定义函数starbar(),而不是调用它或声明它的原型。 starbar()中的变量i是一个局部(Local)变量。这意味着该变量只是在starbar()中可用。即使你在其他函数(包括main()函数)中使用名称i,也不会出现任何冲突,你将得到具有统一名称的多个单独的、互不相关的变量。 程序分析 二、函数参数 在上例中,如果文字居中显示,那么信头就会更漂亮。可以通过在打印文字之前打印一定数目的空格来达到此目的。这和starbar()函数类似。在starbar()中打印的是一定数量
您可能关注的文档
- 第八章:发展中的男性偏见精要.ppt
- 第八章项目的质量管理精要.ppt
- 第八章第2节 磁场对运动电荷的作用精要.ppt
- 第八章:政策执行精要.ppt
- 第八章:会计凭证精要.ppt
- 化工热力学要点.ppt
- 第八组多路复用技术答辩精要.pptx
- 第八讲 声卡和音箱精要.ppt
- 第八章流程模拟软件简介及其应用精要.ppt
- 第八讲 不等式与不等式组精要.ppt
- 2025年国家电网招聘之人力资源类考试题库含答案(培优b卷).docx
- 2025年国家电网招聘之人力资源类考试题库(各地真题).docx
- 2025年国家电网招聘之文学哲学类题库及完整答案.docx
- 2025年中国防水保温行业市场占有率及投资前景预测分析报告.docx
- 2025年上海赫路贸易有限公司企业信息报告.docx
- 武汉里得电力科技股份有限公司_企业报告(供应商版).docx
- 企业信用报告_云南云电投资控股集团有限责任公司迪庆分公司.docx
- 安徽国鑫新能源工程有限公司(企业信用报告).docx
- 2025年土地登记代理人题库及参考答案(精练).docx
- 2025年国家电网招聘之文学哲学类题库及参考答案(实用).docx
文档评论(0)