- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap2_函数2009
Part II 函数 函数的定义 函数原型声明 函数调用及参数传递* 内联函数 函数重载 有默认参数的函数 作用域与存储类别 函数说明: 关于return (返回)语句 语句格式: return; //无值void return 表达式; //有值 return (表达式); //有值 §2 函数原型(对被调函数的声明) 求三角形面积 #includeiostream.h #include math.h //需要声明???? double area(double x,double y,double z) { double s; if (x+yz||x+zy||y+zx) return 0; s=(x+y+z)/2; return sqrt(s*(s-x)*(s-y)*(s-z)); } void main() { double a,b,c,s; coutPlease input a,b,c=; cinabc; s=area(a,b,c); coutarea=s endl; } 当函数未被调用时,形参不占内存 当函数被调用时,为形参分配内存,并将实参的值传递给形参 当函数调用结束时,释放形参所占存储空间 #includeiostream.h void sort(int []); Void output(int []); void main() { int a[10],i; for(i=0;i10;i++) cina[i]; output(a); sort(a); output(a); } #includeiostream.h void sort(int [],int), output(int [],int); void main() { const int SIZE= 40; int a[SIZE],i,n; cout\nPlease input n=; cinn; for(i=0;in;i++) cina[i]; output(a,n); sort(a,n); output(a,n); } #includeiostream.h void sort(int [],int); void output(int [],int); void main() { const int SIZE= 40; int a[SIZE],i,n; /*INPUT*/ cout\nPlease input n=; cinn; for(i=0;in;i++) cina[i]; output(a,n); sort(a,n); output(a,n); } 数组名作参数例程1-4 #includeiostream.h const int N=2,M=2; void maxmin(int x[][M],int n,int m,int max,int min); void main() { int a[N][M],max,min; for(int i=0;iN;i++) for(int j=0;jM;j++) cina[i][j]; maxmin(a,N,M,max,min); coutmaxendl; coutminendl; } 2.引用传递 如果在函数中反复利用指针进行间接访问,会使程序容易产生错误且难以阅读。如果以引用作为参数,将形参作为实参的别名,则对形参的任何操作都能改变相应的实参的数据,使函数调用显得方便、自然。 函数调用机制的选择: 若程序是对数组进行处理,则应采用地址传递机制。 若程序希望从函数返回多个值,或程序希望形参的改变能影响相应的实参的值,则应采用地址传递或引用传递。 除以上情况外,应采用变量的值传递机制。这样被调函数中形参的改变不会影响到实参,从而可以减少函数间的关联,增加程序的可靠性,便于调试。 §4 内联函数 (1)内联函数的意义 内联扩展(inline expansion)简称为内联(inline),内联函数也称为内嵌函数。当在一个函数的定义或声明前加上关键字inline则就把该函数定义为内联函数,它主要是解决程序的运行效率。 计算机在执行一般函数的调用时,无论该函数多么简单或复杂,都要经过参数传递、执行函数体和返回等操作,都需要一定的时间和空间开销,有时,函数本身功能简单,代码很短,但使用频率却很高,这样就使得效率降低。若把一个函数定义为内联函数后,在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代码,由此省去函数的调用及相应的保存现场、参数传递和返回操作,从而加快整个程序的执行速度。 (3)内联函数的原型声明 与其它函数一样,内联函数必须先声明后使用,如果要声明一个内联函数原型,则也必须加上声明关键字inline。例
您可能关注的文档
- 《工程造价计价与控制》精选试题集2010年造价工程师考试(两套).doc
- 《工程量清单与其计价》学习.ppt
- 《师说》练习题与答案1.doc
- 《地球自传运动与其地理意义》.ppt
- 风险与保险chap09.ppt
- _.6-2.8土性与分类.ppt
- 《成本会计》十套模拟试题与答案.doc
- 《广州市建设工程施工公开招标文件范本》(适用于1000万以下房屋建筑与市政基础设施施工总承包招标项目).doc
- 《敬礼,人民英雄》说课.ppt
- 《法律法规与相关知识》.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)