C++语言程序设计2.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文档。上传文档
查看更多
C++语言程序设计 第二讲 本讲主要内容 函数的声明、定义和调用 函数调用的执行过程 变量作用域 递归 为什么要使用函数? 程序bad_program_1的代码好不好? 程序bad_program_2的代码好不好? 程序bad_program_3的代码好不好? 引入函数的原因: 将反复使用的代码写成函数,便于复用 将功能独立的代码写成函数,便于阅读 什么是函数? 函数由函数名以及一组操作数类型唯一地表示 函数的操作数,又称形参(parameter) 形参在一对圆括号中声明 形参之间用逗号分隔 函数执行的运算在一个称为函数体(function body)的块语句中定义 每一个函数都有一个相关联的返回类型(return type) 函数声明、定义和调用 函数声明: 预先告知函数存在,并将其唯一标识 函数定义: 函数的具体实现 函数调用: 使函数执行 函数定义的语法形式 函数返回值类型 函数名(形式参数表) { 函数体 } 例: void show (int result) { cout result endl; } 函数声明的语法形式 函数返回值类型 函数名(形式参数类型表); 例: void show (int); 但习惯上写为: void show (int result); 函数调用的语法形式 函数名(实际参数表); 实参可以是字面值常量、变量或表达式 例: show (5); show (sum); show (i*j/5+k); 示例 无返回值函数及其调用 有返回值函数及其调用 注意事项 即使函数不需要返回任何值,也必须将该函数的返回值类型指定为void 函数可以不需要任何参数,此时参数表可以为空,也可以声明为void,但圆括号不能省略 函数名也是标识符 如果函数有返回值,则必须保证所有的路径均有返回值 思考题 下述哪些代码是非法的?为什么? test(double v1, double v2) {……} int manip(int v1, v2) {……} int s() {char* s; ……; return s;} int calc(int v1, double v1); int calc(int v1, double v1) {……} double square(double x) return x*x; void printfabc {……} 注意事项 函数的所有返回值都必须和该函数的返回值类型保持一致 调用函数时,每一个实参的类型必须与对应的形参类型相同 调用函数时,实参数目多于或少于形参表中参数数目均非法 思考题 根据下述声明回答,以下那些调用非法? int DoTest(int x, int y); DoTest(“hello”, “world”); DoTest(2000); DoTest(2000, 30, 100); DoTest(3.14, 6.64); 函数调用的执行过程(1/2) 主调函数和被调函数是相对的概念 函数从被调用的那一刻起开始执行 函数在执行到return语句时停止执行 如果未碰到return语句,则执行到函数体的”}” 函数执行完毕后,返回调用者的调用位置,继续程序执行 原理见书70页,图3-1。 函数调用的执行过程(2/2) 准备调用函数时需要保存现场 被调用函数执行完毕后需从调用位置继续执行,此时需恢复现场 何为保存现场? 何为恢复现场? 保存现场时保存的是什么? 恢复现场时恢复的是什么? 现场位于何处? 对程序而言,内存什么样? 内存是房间、数据是房客! 每个房客至少要住一个房间! 找到房客的办法就是访问他所住的房间! 对程序而言,内存什么样? 例: short a = 5; int b = 100; char c = ‘a’; double d = 55.55; 思考:上述代码如何执行? 上页例子总结 从程序角度:变量a是short类型的,初值为5; 从内存角度:变量a在内存中的起始地址是1000,在内存中共占据2个地址单元,这些地址单元中存放的信息是5 从程序角度:变量d是double类型的,初值为55.55; 从内存角度:变量d在内存中的起始地址是1007,在内存中共占据8个地址单元,这些地址单元中存放的信息是55.55 思考题 操作符的新作用? 操作符*呢? 什么是指针? 指针类型的取值范围? p,p,*p的关系? 函数的参数传递(1/4) 主调函数和被调函数间如何沟通? C++中的参数传递方式: 非引用形参(值调用) 引用形参(引用调用) 根据例子思考 例: 定义:void Func(int x) {} 调用:int a = 5; Func(a); 思考:C++用值传递方式进行上述参数传递。究竟如何实现的? 参数传

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档