C++语言程序设计 函数2_第1页
C++语言程序设计 函数2_第2页
C++语言程序设计 函数2_第3页
C++语言程序设计 函数2_第4页
C++语言程序设计 函数2_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论