网站大量收购独家精品文档,联系QQ:2885784924

函数定义和调用的格式.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第五章C++函数函数定义和调用的格式函数原形和头文件的作用参数传递机制、函数重载函数和变量的作用域函数模板的设计方法函数的定义函数定义的格式类型修饰符函数名(形式参数表){函数体}例:doublesqare(doublen){returnn*n;}参数有参函数各参数用逗号分隔,与变量说明方法相同无参函数“形式参数表”可以为空,也可用void返回值有返回值函数1、“类型修饰符”说明返回值的类型,为Int时可以

省略,但不提倡2、“函数体”中最后一语句应为:Return表达式;3、函数的返回值应与“类型修饰符”的说明一致,

兼容的转换,不兼容的发生编译错误无返回值函数1、“类型修饰符”必须为Void2、“函数体”中最后语句可以为:Return;也可不用函数调用函数调用格式函数名(实在参数表)实参与形参在数量、类型、次序上必须一致

类型不一致时,兼容的转换,不兼容的发生编译错误调用方法作为表达式1、必须是有返回值的函数2、例:result=sqare(5.0);作为语句1、可以没有返回值,有,也被舍弃不用2、调用语句后加语句结束符构成表达式语句3、例:Hi();sqare(5.0);函数的递归调用函数直接或间接地调用自身函数原形与头文件三种格式函数定义类型修饰符函数名(形式参数表){函数体}函数原形类型修饰符函数名(形式参数表);函数调用函数名(实在参数表)一项原则:在调用函数时,函数必须经过定义或原形说明头文件将C++应用程序中各个程序文件里面要调用的用户自定义函数的原形说明放在一个头文件中,在有函数调用的程序文件中包含这个头文件即可010203第一个文件:描述函数的头文件第二个文件:定义函数的程序文件第三个文件:调用函数的主程序文件多文件应用系统参数传递传值把实参表达式的值作为一个副本传递给形参变量,函数调用不会改变实参的值一维数组参数1、在定义一个一维数组参数时,可以不限定数组元素的个数2、在调用具有数组参数的函数时,须以单独的数组名为实在参数二维数组参数1、在定义一个二(或三)维数组参数时,其第一维可以不限定,但其余各维都须限定2、在调用具有数组参数的函数时,须以单独的数组名为实在参数3、仅用行下标引用一个二维数组时,实际上引用的是相应行的那个一维数组说明:对于数组参数,形参数组是对应的实参数组的代表,而不是它的副本,因此,对形参数组的任何改变实际上就是对实参数组的改变在说明一个函数时,可以为形式参数表中的最后若干个参数设定默认值,从而把这些参数设定为可选参数在调用这个函数时,如果没有给出对应于可选参数的实参,系统就自动以设定的默认值作为实参传递给这个函数在调用具有可选参数的函数时,被省略的只能是最后的连续的若干个可选参数(即不能间隔省略)可选参数的说明格式如下:类型修饰符变量名=默认值(常量表达式)可选参数应该在函数原形中说明可选参数内联函数:在一般函数定义前面加上保留字inline,该函数即被说明为内联函数,例:inlineintadd2(intn){returnn+2;}内联展开:程序执行时,C++有可能直接调用函数体代码来替代对函数的调用函数说明:内联函数的说明也应放置在头文件中内联函数函数重载:允许定义同名的函数,但重载的函数必须在参数的数量上或类型上与其他同名函数有所不同名字混成:编译系统在处理重载函数时会形成不同的内部名称,这种方法称为名字混成重载函数的调用:如果调用时所用的参数与所定义的各种情况均不相同,则编译系统会选择与其兼容的最相似的那个函数,并完成必要的类型转换,如果找不到兼容的函数,则产生编译错误在重载函数时必须保证在逐个去掉可选参数后,仍然在参数个数上或类型上与同名函数有所不同2341函数重载与名字混成全局作用域:不但在定义函数的文件中可以调用,而且在同一应用系统的其他程序文件中也可调用文件作用域:说明为static的函数只能被同一文件中的函数调用,例:staticlongadd(longa,longb){returna+b;}函数的作用域全局变量全局变量:定义于函数外部的变量称为全局变量静态生存期:全局变量在应用程序运行的整个期间都有效,如果在定义时未初始化,则自动初始化为0文件作用域:全局变量定义时使用static修饰,则只允许同一文件中的函数访问该变量跨文件作用域:全局变量定义时未使用static修饰,则还允许同一系统的其他程序文件中的函数访问该变量外部说明:externinta应用场合

①跨文件

文档评论(0)

136****0775 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档