C++語言程序設(shè)計 函數(shù)2_第1頁
C++語言程序設(shè)計 函數(shù)2_第2頁
C++語言程序設(shè)計 函數(shù)2_第3頁
C++語言程序設(shè)計 函數(shù)2_第4頁
C++語言程序設(shè)計 函數(shù)2_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C++語言程序設(shè)計函數(shù)22主要內(nèi)容數(shù)組作為函數(shù)參數(shù)內(nèi)聯(lián)函數(shù)帶有默認參數(shù)的函數(shù)指針和函數(shù)3數(shù)組作為函數(shù)參數(shù)數(shù)組元素作實參,與單個變量一樣。例如:inta[3]={1,2,3}; a[0]=power(a[1],a[2]);數(shù)組名作參數(shù),形、實參數(shù)都應(yīng)是數(shù)組名,類型要一樣,傳送的是數(shù)組首地址。對形參數(shù)組的改變會直接影響到實參數(shù)組。4例12-1使用數(shù)組名作為函數(shù)參數(shù)主函數(shù)中初始化一個一維數(shù)組并將每個元素都輸出,然后調(diào)用子函數(shù),每一個數(shù)組元素的值變?yōu)樵瓉淼?倍,并計算出變化以后的數(shù)組元素和,返回主函數(shù)之后輸出一維數(shù)組中的各個元素及其和。5#include<iostream>usingnamespacestd;intmain(){ intchange(inta[],intn);intsum,i,n,d[5]={4,2,5,1,7}; n=5; cout<<"調(diào)用函數(shù)之前,數(shù)組d中的元素值:"; for(i=0;i<n;i++) cout<<d[i]<<""; sum=change(d,n); cout<<endl<<"調(diào)用函數(shù)之后,數(shù)組d中的元素值:"; for(i=0;i<n;i++) cout<<*(d+i)<<""; cout<<endl<<"調(diào)用函數(shù)后,數(shù)組d中的元素之和為:"<<sum<<endl; return0;}6//變換數(shù)組元素并求和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內(nèi)聯(lián)函數(shù)聲明與使用聲明時使用關(guān)鍵字inline。編譯時在調(diào)用處用函數(shù)體進行替換,節(jié)省了參數(shù)傳遞、控制轉(zhuǎn)移等開銷。注意:內(nèi)聯(lián)函數(shù)體內(nèi)不能有循環(huán)語句和switch語句。內(nèi)聯(lián)函數(shù)的聲明必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前。對內(nèi)聯(lián)函數(shù)不能進行異常接口聲明。內(nèi)聯(lián)函數(shù)8例12-2內(nèi)聯(lián)函數(shù)應(yīng)用舉例#include<iostream>usingnamespacestd;doubleCalArea(doubleradius){ return3.14*radius*radius;}intmain(){

inlinedoubleCalArea(doubleradius); doubler(3.0); doublearea; area=CalArea(r); cout<<area<<endl; return0;}內(nèi)聯(lián)函數(shù)9默認形參值的作用函數(shù)在聲明時可以預(yù)先給出默認的形參值,調(diào)用時如給出實參,則采用實參值,否則采用預(yù)先給出的默認形參值。例如:intadd(intx,inty){returnx+y;}intmain(){intadd(intx=5,inty=6); add(10,20);//10+20add(10);//10+6add();//5+6 return0;}帶默認形參值的函數(shù)10默認形參值的說明次序默認形參值必須從右向左順序聲明,并且在默認形參值的右面不能有非默認形參值的參數(shù)。因為調(diào)用時實參取代形參是從左向右的順序。例:intadd(intx,inty=5,intz=6);//正確intadd(intx=1,inty=5,intz);//錯誤intadd(intx=1,inty,intz=6);//錯誤帶默認形參值的函數(shù)11默認形參值的作用域在相同的作用域內(nèi),默認形參值的說明應(yīng)保持惟一,但如果在不同的作用域內(nèi),允許說明不同的默認形參。例:intadd(intx=1,inty=2);intmain(){intadd(intx=3,inty=4);add();//使用局部默認形參值(實現(xiàn)3+4) return0;}voidfun(){...

add();//使用全局默認形參值(實現(xiàn)1+2)}帶默認形參值的函數(shù)121、以指針作為函數(shù)參數(shù)以地址方式傳遞數(shù)據(jù),可以用來返回函數(shù)處理結(jié)果。實參是數(shù)組名時形參可以是指針。2、函數(shù)返回值為指針聲明形式數(shù)據(jù)類型*函數(shù)名()函數(shù)與指針13例12-3求字符串的左子串#include<iostream>#include<cstring>usingnamespacestd;intmain(){ char*left(char*s,intn);char*p,s[100];intn; strcpy(s,"1234567890"); cout<<"請輸入一個正整數(shù):"; 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結(jié) 束 語預(yù)習(xí):P995.6局部變量和全局變量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論