- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数和作用域-Read.ppt
第四章 函数、内联函数、函数重载与默认参数; 第四章 函数和作用域;4.1 函数的定义和声明;;;4.2 函数的调用与参数传递;4.2.1 函数的调用方法;4.2.1.1 函数的调用和返回序列;4.2.2 参数传递;4.2.2.1 传值调用-传值;执行过程;;执行过程;传值 vs 传指针;思考题1;答:程序崩溃。 因为GetMemory并不能传递动态内存,Test函数中的 str一直都是 NULL。strcpy(str, “hello world”);将使程序崩溃。;思考题2;答:可能是乱码。 因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原先的内容已经被清除,新内容不可知。 ;思考题3;答: (1)能够输出hello (2)内存泄漏:退出test()后,malloc分配的空 间将无法释放。;思考题4;答:篡改动态内存区的内容,后果难以预料,非常危险。 因为free(str)之后,str成为未初始化的野指针,并不是NULL。因此if(str != NULL)将总是为真。;4.2.2.3 引用传递; 形式参数只是实参的别名,因此函数调用时不需要 为它分配空间;尤其是传递大的对象。 在函数内对参数值的改变不再作用于局部拷贝,而 是直接针对实参;但是相对于指针传递而言,引用 传递的函数体定义和函数调用的形式更为简洁。; ;4.2.2.5 使用数组作函数参数;例:;int a[8] ={1,3,5,7,9,11,13}; void fun( int *pa, int n){ for (int i= 0;in-1;i++){ *(pa + 7) += *(pa + i); } } void main( ){ int m =8; fun(a,m); cout a[7]endl; };4.2.3 函数参数的求值顺序;4.2.4 返回语句实现过程(略);作业:;4.3 作用域;4.3.1 作用域;4.3.2 作用域的屏蔽规则;4.3.2.1 :: 全局作用域分辨符;作用域: 函数级; 块级。 生命期: 自动类变量; 内部静态变量;全局变量与局部变量;全局变量与局部变量(续);文件级作用域;文件级作用域(续);文件级作用域(续);4.3.4 内部静态变量;4.3.5 寄存器变量;小结;小结(续);4.4 内联函数注;4.4.1 内联函数(inline function);说明:;4.4.2 内联函数 vs 宏替换;4.4.3 内联函数 vs 直接代码比较;4.5 默认参数注;4.5.1 设置函数参数的默认值;// DefaultArgument.cpp #include iostream using namespace std; void main(){ CLOCK t1,t2,t3,t4,t5; setclock(t1); // t1=12:00:00 setclock(t2, 7); // t2=07:00:00 setclock(t3,14,20); // t3=14:20:00 setclock(t4,18,30,0); // t4=18:30:00 setclock(t5,19, , 0) ; // 非法 } ;说明;说明(续);4.5.2 占位符参数;修改后:(见下页);long min( long a, long b, long c ) { …}; void main( ){ long a = 100, b=200; long c = min ( a, b, MAXNUMBER); long d = min(a, b, c); };4.6 函数重载注;4.6.1 重载的概念;c= max(a,b); d= max(a,b,c); 编译器根据什么来区分调用哪个函数? 函数名:相同,无法区分; 返回值类型:语句中不出现返回值类型,也无法区分; 参数:参数的个数和类型不同,可以区分。;4.6.2.1 参数类型不同的重载函数;4.6.2.2 参数个数不同的重载函数;int min(int a, int b, int c) { int t = min(a,b); return min(t,c); } int min(int a, int b, int c, int d) { int t1
您可能关注的文档
最近下载
- 2025秋季四川成都陆港智汇科技服务有限公司成都市青白江区区笔试备考试题附答案.docx VIP
- GB55008-2021 混凝土结构通用规范.pdf VIP
- 详解《铸牢中华民族共同体意识》微课课件.ppt VIP
- 初中古诗文打卡背诵计划表艾宾浩斯2023年更新.pdf VIP
- 预算单位审计常见13类60个问题(含审计方法和步骤、定性依据和处理意见).docx VIP
- (高清版)B-T 5900.2-2022 机床 主轴端部与卡盘连接尺寸 第2部分:凸轮锁紧型.pdf VIP
- 第17课_挽救民族危亡的斗争.pptx VIP
- 消防20-消防设计变更情况说明(仅供参考).docx VIP
- 2025秋季四川成都陆港智汇科技服务有限公司成都市青白江区区模拟试卷附答案.docx VIP
- AF7500仪器说明书.doc VIP
有哪些信誉好的足球投注网站
文档评论(0)