山东师范大学面向对象程序设计课件第五章 函数.pptVIP

山东师范大学面向对象程序设计课件第五章 函数.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计 第五章 函数 函数可以被看作是一个由用户定义的操作。函数用一个函数名来表示。函数的操作数称为参数,由一个位于括号中并且用逗号分隔的参数表指定。无参函数的一般形式?: 类型说明符 ?函数名()? {? 类型说明 语句? } 其中类型说明符和函数名称为函数头。?类型说明符指明了本函数的类型,函数的类型实际上是函数返回值的类型。在很多情况下都不要求无参函数有返回值,?此时函数类型符可以写为void。 有参函数 类型说明符? 函数名(形式参数表)? {? 类型说明? 语句? } 有参函数包含形式参数表,形参表中包括形参的类型及形参名,?它们可以是各种类型的变量,?各参数之间用逗号间隔。 例如: int?max(int?a,int?b) { if(ab)?return?a; else?return?b; }? 有返回值函数中至少应有一个return语句。 void?main() { int?max(int?a,int?b);//准备调用max函数,所以先说明 int x,y,z; coutinput two numbers:; cinxy; z=max(x,y); coutmaxnum= zendl; } 如果函数定义在先,调用在后,调用前可以不必说明,如果定义在后,调用在先,调用前必须说明. 说明调用函数的方法: 类型函数名(参数表);  与C语言不同的是,说明为原型说明,包含整个函数头。 5.2函数的调用 可以用以下几种方式调用函数: 1.函数表达式 函数作表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:?z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。 2.函数语句 函数调用的一般形式加上分号即构成函数语句。 3.函数实参 函数作为另一个函数调用的实际参数出现。?这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。 5.3函数的参数和函数的值 函数的参数分为形参和实参两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 1. 形参变量只有在被调用时才分配内存单元,在调用结束时,?即刻释放所分配的内存单元。因此,形参只有在函数内部有效。?函数调用结束返回主调函数后则不能再使用形参变量。 2. 实参可以是常量、变量、表达式、函数等,?无论实参是何类型,在进行函数调用时,它们都必须具有确定的值,?以便把这些值传送给形参。?因此应预先用赋值,输入等办法使实参获得确定值。 3. 实参和形参在数量上,类型上,顺序上应严格一致,?否则会发生“类型不匹配”的错误。 4. 函数调用中发生的数据传送是单向的。?即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。?因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。 #include iostream.h int s(int n) { int i; for(i=n-1;i=1;i--) n+=i; coutnendl; return n; } void main() { int n; coutinput numberendl; cinn; s(n); coutnendl; } 本程序中定义了一个函数s,该函数的功能是求∑ni=1i?的值。在主函数中输入n值,并作为实参,在调用时传送给s?函数的形参量n (?注意,本例的形参变量和实参变量的标识符都为n,?但这是两个不同的量,各自的作用域不同)。?在主函数中用cout?语句输出一次n值,这个n值是实参n的值。在函数s中也用cout?语句输出了一次n值,这个n值是形参最后取得的n值0。从运行情况看,输入n值为100。即实参n的值为100。把此值传给函数s时,形参?n?的初值也为100,在执行函数过程中,形参n的值变为5050。?返回主函数之后,输出实参n的值仍为100。可见实参的值不随形参的变化而变化。 函数的值是指函数被调用之后,?执行函数体中的程序段所取得的并返回给主调函数的值.函数的值是在被调用函数中,通过返回语句来实现的。返回语句有两种形式: return 表达式; return; 1. 先

文档评论(0)

ormition + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档