- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]VC语言_VCchap5_93
5.1 函数定义和调用 库函数和用户自定义函数 无参函数和有参函数 函数定义: 《type》函数名(void){…………} 《type》函数名(类型标识符 arg1《类型标识符 arg2 ...》){…………} 函数调用: 函数名( ) 函数名(实参表) 例5.1 void main(void) { float a,b; cout输入两个实数:; cinab; cout max(a,b)\n; } 5.2 函数的形参、实参 形参和实参 在函数说明的参数表中的参数为形式参数 在函数调用中列出的参数为实在参数 使用形参和实参的一般原则: 实参和形参的类型相兼容 实参和形参的个数相一致 5.2 函数的返回值和原型说明 函数的返回值 return 表达式; 函数的原型说明 函数必须先说明再使用 函数的定义部分称为定义性说明 函数的引用性说明称为原型说明 类型函数名(形式类型说明表); 类型函数名(型参说明表); 5.2 参数传递 void swap(float x, float y) { float t; t=x; x=y; y=t; } 5.3 函数的嵌套和递归调用 递归: 直接递归:自己调用自己 间接递归:A调用B,B调用A 递归三要素: 递归的公式 递归的结束条件 递归的约束条件 5.4 作用域和存储类 作用域分为四类: 块作用域 全局作用域 函数作用域 类作用域(以后介绍) 1、块作用域 块内说明的变量作用域在块内。起于说明处,终于块的结束处。 同名标识符 作用域不同的,可以使用同名标识符。 作用域相同的,不可以使用同名标识符。 局限性大的标识符优先。 for语句中循环变量的作用域为包含for语句的块。 局部变量:块作用域的变量称作局部变量。 2、文件作用域 全局变量:在函数外定义的变量或用extern说明的变量。 全局变量的作用域称为文件作用域 作用域运算符::(两个冒号) 存储类 程序在内存占用的存储空间分为三部分:程序区、静态存储区、动态存储区 变量的存储类型分为四种: 自动类型:auto int x; 静态类型: static int x; 寄存器类型: register int x; 外部类型: extern int x; 自动类型变量 用关键字auto修饰 默认局部变量为自动类型变量 若不赋初值,则初值不确定。 动态存储 静态类型变量 用关键字static修饰 若不赋初值,则初值为0 静态局部变量:例5.8 静态全局变量:例5.9(f1.cpp f2.cpp) 静态存储 寄存器类型变量 用关键字register修饰 尽可能直接分配使用CPU中的寄存器 动态存储 例5.10 外部类型变量 用关键字extern修饰 只有两种情况使用 P79-80 5.5 内联函数 在普通函数的类型前加inline修饰词inline float max(float x, float y){return (xy?x:y); } 内联函数和普通函数有什么区别? 内联函数 调用普通函数的处理过程 内联函数 内联函数的处理过程 编译器在编译程序时,对主调函数中的调用内联函数的地方直接用该函数体的代码替换。 inline float max(float x,float y) {return (xy?x:y);} void mian() { float a,b,c; cinab;’ c=max(a,b); cout“大数是:”c‘\n’; } 内联函数 编译系统在遇到函数调用“c=max(a,b)”时,就用max函数体的代码代替“max(a,b)”,同时将实参代替形参。这样,程序中 “c=max(a,b);”就被置换成 c=ab?a:b; 使用注意点 所有函数均可作为内联函数 坚持“先定义,后使用”的原则 以空间换时间 是否作为内联函数来处理由编译器决定 5.6.1 具有缺省参数值的函数 一般情况下,在函数调用时形参从实参那里取得值,因此实参的个数应与形参相同。 定义形式: int max(int x, int y,int z=-10000) { ……….. } 使用注意点: 缺省参数的说明必须出现在函数调用前。 参数的缺省值可以是常常量,也可以是常量表达式。 缺省参数必须出现在参数表的右边 具有缺省参数值的函数 例5.12 编写个求三数最大值且具有一个缺省值函数,利用这个函数分别求给定的三个数的最大值和求给定的两个数的较大值。(假设,给定的两个数都大于0) 5.7 函数的重载 函数的重载:指两个或者多个不同功能的函数可以具有相同的函数名。 定义重载函数的注意点: 定义的重载函数必须具有不同的参数个数或不
文档评论(0)