第2章函数分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章函数分析

第2章 函 数 2.1 函数的定义与使用 2.2 函数调用机制 2.3 递归函数 2.4 默认参数的函数 2.5 内联函数 2.6 函数重载 2.7 函数模板 2.8 使用C++系统函数 2.1 函数的定义与使用 2.1.1 函数的定义 一个完整的函数定义由两部分组成,即函数头与函数体。 1. 函数定义的一般语法形式 类型标识符 函数名说明符(形式参数表) //函数头 { //函数体 说明性语句序列; 实现函数功能的语句系列; } 3. 形式参数 函数头部分的形式参数(简称形参)表的内容如下: 类型l 形参名1,类型2 形参名2,...,类型n 形参名n 其中类型1、类型2、...、类型n是类型标识符,表示形参的数据类型(int、double、float、char、bool等);形参名1、形参名2、...、形参名n是形参名(合法的自定义标识符)。 形参是用来实现主调函数与被调函数之间的数据联系,通常将函数所处理的数据、影响函数功能的因素或者函数处理的结果作为形参。对于无形参的函数,其形参表的内容应该为空,但代表函数的小括号对不能省略。 2.1.2 函数的调用 函数遵循先声明后调用的原则,如果没有遵守先定义后调用的原则,调用函数之前先要在主调函数中声明函数原型。在主调函数中,或所有函数之前,按如下形式进行函数原型声明: 类型标识符 被调函数名(含类型说明的形参表); 注:如果是在所有函数之前声明了函数原型,那么该函数原型在本程序文件中任何地方都有效;如果是在某个主调函数内部声明了被调函数原型,那么该原型就只能在这个函数内部有效。 声明了函数原型之后,便可以按如下形式调用子函数: 函数名(实参1,实参2,…,实参n) 实参列表中应给出与函数原型中形参个数相同、类型相符的实参,每个实参都可以是常量、变量或表达式三者之一。 2.1.3 函数的参数传递 函数的参数用于在调用函数与被调用函数之间进行数据传递。在函数定义时,函数名后面括号内的参数称为形式参数(简称形参)。在函数被调用时,函数名后面括号内的参数称为实际参数(简称实参)。 当函数未被调用时,C++编译系统并没有给函数的形参分配相应的内存空间,函数的形参更不会有实际的值。只有在函数被调用时,C++编译系统这时才为形参分配实际的存储单元。 函数的参数传递,指的就是形参与实参结合(简称形实结合)的过程。形实结合的方式有值调用和引用调用两种。 1. 值调用 值调用是指当发生函数调用时,编译系统为形参分配相应的存储空间并且直接将实参的值复制给形参,这样形参和实参就各自拥有不同的存储单元,且形参是实参的副本。因此,值调用过程是参数值的单向传递过程,一旦形参获得了与实参相同的值就与实参脱离关系,以后不论形参发生多大的改变,都决不会反过来影响到实参。传值方式可以防止被调用函数改变参数的原始值,这在很多场合是很重要的。 #include iostream.h void swap(int a,int b); void main( ) { int x,y; x=5; y=10; coutx=x y=yendl; swap(x,y); //交换x,y的值 coutafter swapendl; coutx=x y=yendl; } 程序运行结果为 x=5 y=10 after swap x=5 y=10 分析:程序运行结果可以看出,并没有达到交换的目的。因为在单向值传递方式中,形参值虽确实进行了交换,但这些改变对实参不起任何作用。函数调用语句swap(x、y)后,编译系统将实参x中的值5传递给虚参a,将实参y中的值10传递给虚参b;在swap函数中,a、b中的值完成互换;返回主函数时,实参x、y中的值不受

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档