版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++语言程序设计函数22主要内容数组作为函数参数内联函数带有默认参数的函数指针和函数3数组作为函数参数数组元素作实参,与单个变量一样。例如:inta[3]={1,2,3}; a[0]=power(a[1],a[2]);数组名作参数,形、实参数都应是数组名,类型要一样,传送的是数组首地址。对形参数组的改变会直接影响到实参数组。4例12-1使用数组名作为函数参数主函数中初始化一个一维数组并将每个元素都输出,然后调用子函数,每一个数组元素的值变为原来的2倍,并计算出变化以后的数组元素和,返回主函数之后输出一维数组中的各个元素及其和。5#include<iostream>usingnamespacestd;intmain(){ intchange(inta[],intn);intsum,i,n,d[5]={4,2,5,1,7}; n=5; cout<<"调用函数之前,数组d中的元素值:"; for(i=0;i<n;i++) cout<<d[i]<<""; sum=change(d,n); cout<<endl<<"调用函数之后,数组d中的元素值:"; for(i=0;i<n;i++) cout<<*(d+i)<<""; cout<<endl<<"调用函数后,数组d中的元素之和为:"<<sum<<endl; return0;}6//变换数组元素并求和intchange(inta[],intn){inti,s; for(i=0;i<n;i++) a[i]=2*a[i]; s=0; for(i=0;i<n;i++) s=s+a[i]; returns;}7内联函数声明与使用声明时使用关键字inline。编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。注意:内联函数体内不能有循环语句和switch语句。内联函数的声明必须出现在内联函数第一次被调用之前。对内联函数不能进行异常接口声明。内联函数8例12-2内联函数应用举例#include<iostream>usingnamespacestd;doubleCalArea(doubleradius){ return3.14*radius*radius;}intmain(){
inlinedoubleCalArea(doubleradius); doubler(3.0); doublearea; area=CalArea(r); cout<<area<<endl; return0;}内联函数9默认形参值的作用函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。例如:intadd(intx,inty){returnx+y;}intmain(){intadd(intx=5,inty=6); add(10,20);//10+20add(10);//10+6add();//5+6 return0;}带默认形参值的函数10默认形参值的说明次序默认形参值必须从右向左顺序声明,并且在默认形参值的右面不能有非默认形参值的参数。因为调用时实参取代形参是从左向右的顺序。例:intadd(intx,inty=5,intz=6);//正确intadd(intx=1,inty=5,intz);//错误intadd(intx=1,inty,intz=6);//错误带默认形参值的函数11默认形参值的作用域在相同的作用域内,默认形参值的说明应保持惟一,但如果在不同的作用域内,允许说明不同的默认形参。例:intadd(intx=1,inty=2);intmain(){intadd(intx=3,inty=4);add();//使用局部默认形参值(实现3+4) return0;}voidfun(){...
add();//使用全局默认形参值(实现1+2)}带默认形参值的函数121、以指针作为函数参数以地址方式传递数据,可以用来返回函数处理结果。实参是数组名时形参可以是指针。2、函数返回值为指针声明形式数据类型*函数名()函数与指针13例12-3求字符串的左子串#include<iostream>#include<cstring>usingnamespacestd;intmain(){ char*left(char*s,intn);char*p,s[100];intn; strcpy(s,"1234567890"); cout<<"请输入一个正整数:"; cin>>n; p=left(s,n); cout<<"原来的字符串为:"<<s<<endl; cout<<"左子串为:"<<p<<endl; delete[]p; return0;}14char*left(char*s,intn){intMyStrlen(char*);char*t;intl; l=MyStrlen(s); t=newchar[l+1]; strcpy(t,s); if(n<l)t[n]=0; returnt;}intMyStrlen(char*s){intn=0;while(*s++!='\0')n++;returnn;}15结 束 语预习:P995.6局部变量和全局变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江省绥化市望奎县第四中学等校(五四学制)2026-2027学年七年级上学期开学摸底考试数学试卷(含答案)
- 安徽省合肥市第五十中学天鹅湖校区2026-2027学年上学期九年级第一次 阶段学情自测(含答案)
- 水产饵料培养工岗位技能考试试卷及答案
- 少儿乐高老师岗位技能考试试卷及答案
- 二氧化碳树脂装置操作工安全宣贯竞赛考核试卷含答案
- 离子注入工安全演练强化考核试卷含答案
- 果蔬坚果加工工成果转化水平考核试卷含答案
- 无损检测员安全实践知识考核试卷含答案
- 锂焙烧工岗位责任制水平考核试卷含答案
- 电线电缆包制工岗前班组管理考核试卷含答案
- 安徽省江南十校2026-2027学年高三上学期9月综合素质检测 数学试题+答案
- 2026年高职编辑出版学(版权贸易)试题及答案
- 2026年六安霍邱县沣源水务有限责任公司公开招聘工作人员10名考试备考试题及答案详解
- 2《中国人首次进入自己的空间站》课件
- (2026年秋)八年级上册历史知识点大全(2024修订版)
- 财产损失评估报告范本
- 避雷器安装技术规范及方案说明
- ApIQ1培训课件教学课件
- 雅礼中学内控制度
- 反歧视知识培训课件
- 人类的飞天梦课件
评论
0/150
提交评论