chapter04 函数.pptVIP

  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文档。上传文档
查看更多
4.6 函数的其他话题 4.6.3 指向函数的指针和引用 void (*fp)(); void fun(); fp = fun; //fp指向函数fun() fp(); //调用函数fun() (*fp)(); //调用函数fun() void (rf)() = fun; //请注意括起引用rf的() rf(); 4.6 函数的其他话题 4.6.4 在C++程序中调用非C++函数 使用链接规格说明,其语法如下: extern 字面字符串常量 { 外部函数声明; } 例如: extern C int fun(); 4.7 C风格的解决方案 图4-3详解 height weight name 一个parallelogram对象的内存布局 Quadrangle指针 List.quad[0] 一个Quadrangle对象 这部分内存对List.quad[0]不可见 这一小节请在学生自学完4.7后,在进入第五章之前补充讲解 * C++程序设计与实践 C++程序设计与实践 第四章 函数 电子科技大学信息与软件工程学院 白忠建 第四章 函数 本章要点 函数的原型。C++编译器根据函数原型生成正确的代码。 函数的参数和返回值。函数的参数和返回值可以是值、指针和引用,它们有不同的作用。 函数重载。函数重载是指多个函数拥有相同的名字,但必须有不同的参数。 4.1 函数的原型声明和定义 函数原型(function prototype)是一个很重要的概念,函数原型担负着三个特殊的任务: 确定函数返回值的类型,使编译程序能产生函数返回数据类型的正确代码。 确定了函数使用的参数的类型、个数和顺序。 函数名代表该函数的函数体以及函数完成的功能。 4.1 函数的原型声明和定义 函数原型声明一般的语法形式为 返回类型 函数名(参数列表); 函数的返回类型可以是任意需要的类型; 函数名必须是合法的标识符,并且最好取一个有意的名字; 参数列表注明各参数的名字、类型、个数和顺序,而这里的参数是形式参数(形参)。如果函数没有参数,那么参数列表位置可以写上关键字void,或者直接空缺。 4.1 函数的原型声明和定义 函数声明的例子: void Circle(int xCenter, int yCenter, int radius); 函数声明中的参数名字可以省略: void Circle(int, int, int); 函数原型也称为函数的“接口(interface)”。 函数声明不是一个函数的全部,它还需要实现部分。实现部分由函数的定义完成。 4.2 函数的参数和返回值 4.2.1 函数的参数 函数的参数称为“形式参数(简称形参)”。在编译时,形式参数不具有任何实际的值。这些值需要在运行时通过函数调用的形式,将实际的值(称为“实际参数(简称实参)”)传递给形式参数,以便完成需要的运算。这个过程称为“形参和实参的结合”。 4.2 函数的参数和返回值 1.参数结合的三种方式 1)传值 C++采用传值(call by value)方式进行参数传递。也就是说,在参数结合时,形参是实参的一个复制品,形参和实参是两个不同的单元。这样,形参的改变不会影响实参。这样的形参往往也被称为“值参数”或者“输入参数”。 4.2 函数的参数和返回值 1.参数结合的三种方式 1)传值 C++采用传值(call by value)方式进行参数传递。也就是说,在参数结合时,形参是实参的一个复制品,形参和实参是两个不同的单元。这样,形参的改变不会影响实参。这样的形参往往也被称为“值参数”或者“输入参数”。 例4-1:两个变量交换值(ex4-1.cpp) 4.2 函数的参数和返回值 2)传指针 传递指针实际上仍属于传值的范畴:形参指针是实参指针的拷贝。不过,这两个指针指向了同一个单元。因此,通过这两个指针的任何一个都可以间接地改变实参的值。 例4-2:两个变量交换值(ex4-2.cpp) 4.2 函数的参数和返回值 3)传引用 实参和形参结合的第三种也是最好的一种方法就是传递引用。我们都知道,引用是一个单元的别名。这种别名结合也适用于参数结合。当形参是一个引用时,那么在函数内部,形参就是实参的别名,换句话说,形参就是实参本身,因此对形参的改变就会直接改变实参。 提示:引用形参与实参的别名绑定不是永久性的,而只在函数作用范围内起作用。 例4-2:两个变量交换值(ex4-2.cpp) 4.2 函数的参数和返回值 2. const作用于参数 使用指针和引用参数具有实参被更改的潜在“危险”。为了避免这种危险,可以给形参加上const约束,这是形参/实参成为只读参数,从而避免了被更改的问题。例如: void func(const int *pi) { int a = *pi;

文档评论(0)

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

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

1亿VIP精品文档

相关文档