培訓(xùn)教程第三十一課函數(shù)之定義-第五章_第1頁(yè)
培訓(xùn)教程第三十一課函數(shù)之定義-第五章_第2頁(yè)
培訓(xùn)教程第三十一課函數(shù)之定義-第五章_第3頁(yè)
培訓(xùn)教程第三十一課函數(shù)之定義-第五章_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余8頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

課程內(nèi)容安排定義函數(shù)函數(shù)參數(shù)及原型調(diào)用函數(shù)變量的作用域函數(shù)的作用域函數(shù)重載綜合練習(xí)思考和習(xí)題定義函數(shù)在C++程序中調(diào)用函數(shù)之前,首先要對(duì)函數(shù)進(jìn)行定義。如果調(diào)用此函數(shù)在前,函數(shù)定義在后,就會(huì)產(chǎn)生編譯錯(cuò)誤。為了使函數(shù)的調(diào)用不受函數(shù)定義位置的影響,可以在調(diào)用函數(shù)前進(jìn)行函數(shù)的定義。這樣,不管函數(shù)是在哪里定義的,只要在調(diào)用前進(jìn)行函數(shù)的定義,就可以保證函數(shù)調(diào)用的合法性。函數(shù)定義的一般形式如下:返回類型函數(shù)名(參數(shù)列表){…

函數(shù)體}函數(shù)定義應(yīng)用示例該范例定義一個(gè)函數(shù)func,該函數(shù)判斷指定的參數(shù)與0的比較結(jié)果,大于0則返回值1,等于0則返回0,小于0則返回-1。并在主函數(shù)main()中調(diào)用該函數(shù),使讀者可以看到該函數(shù)的執(zhí)行結(jié)果。代碼清單1 #include<iostream.h>2 intfunc(intn) //聲明函數(shù)func,返回類型為int,參數(shù)為intn3 { //函數(shù)體4 if(n>0) //n>0成立5 return1;6 elseif(n==0) //n=0成立7 return0;8 else //n<0成立9 return-1;10 }11 voidmain()12 {13 intn; //定義變量14 cout<<"Pleaseinputn:"<<endl;15 cin>>n; //接收用戶輸入16 cout<<"\ntheresult:"<<func(n)<<endl; //調(diào)用函數(shù)17 }函數(shù)參數(shù)及原型函數(shù)一般都帶有參數(shù)列表,這個(gè)參數(shù)列表稱為形式參數(shù),而在調(diào)用函數(shù)時(shí),實(shí)際的參數(shù)和形式參數(shù)將會(huì)有數(shù)據(jù)傳遞。函數(shù)原型也稱函數(shù)聲明或函數(shù)模型。在主調(diào)函數(shù)中,如果要調(diào)用另一個(gè)函數(shù),則須在本函數(shù)或本文件中的開頭將要被調(diào)用的函數(shù)事先作一聲明。調(diào)用函數(shù)一般來(lái)說(shuō),C++程序都是從主函數(shù)main()開始執(zhí)行,當(dāng)執(zhí)行到函數(shù)調(diào)用語(yǔ)句時(shí),就會(huì)轉(zhuǎn)去執(zhí)行調(diào)用函數(shù),執(zhí)行后仍然返回到主函數(shù),直至程序結(jié)束。當(dāng)調(diào)用一個(gè)函數(shù)時(shí),整個(gè)調(diào)用過(guò)程分為三步進(jìn)行,第一步是參數(shù)傳遞,第二步是函數(shù)體執(zhí)行,第三步是返回,即返回到函數(shù)調(diào)用表達(dá)式的位置。變量的作用域變量的作用域是指該變量的作用范圍。在一個(gè)函數(shù)內(nèi)部說(shuō)明的變量是內(nèi)部變量,其只在該函數(shù)范圍內(nèi)有效。也就是說(shuō),只有在包含變量說(shuō)明的函數(shù)內(nèi)部,才能使用被說(shuō)明的變量,在此函數(shù)之外就不能使用這些變量了。因此,這些內(nèi)部變量被稱為局部變量。與局部變量相對(duì)應(yīng)的,C++中也有這全局變量的概念。全局變量又稱為外部變量,其是在在函數(shù)外部定義的變量。

函數(shù)的作用域每個(gè)函數(shù)都構(gòu)成了一個(gè)函數(shù)作用域,函數(shù)作用域的概念跟變量的存儲(chǔ)位置和生命期有關(guān)。函數(shù)的參數(shù)和在函數(shù)中聲明并定義的變量即局部變量,其被分配在堆棧上,隨著函數(shù)的執(zhí)行而生成,隨著函數(shù)的退出而消亡。函數(shù)重載函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn)。例如,可以給函數(shù)名add()定義多個(gè)函數(shù)實(shí)現(xiàn),該函數(shù)的功能是求和,即求兩個(gè)操作數(shù)的和。其中,一個(gè)函數(shù)實(shí)現(xiàn)是求兩個(gè)int型數(shù)之和,另一個(gè)實(shí)現(xiàn)是求兩個(gè)浮點(diǎn)型數(shù)之和,再一個(gè)實(shí)現(xiàn)是求兩個(gè)復(fù)數(shù)的和。每種實(shí)現(xiàn)對(duì)應(yīng)著一個(gè)函數(shù)體,這些函數(shù)的名字相同,但是函數(shù)的參數(shù)的類型不同,這就是函數(shù)重載的概念。綜合練習(xí)該示例將輸入的整數(shù)按字符串形式逆序輸出,要求分別用遞歸算法和非遞歸算法實(shí)現(xiàn)。如:輸入12345,輸出:54321代碼清單1 #include<iostream.h> //包含頭文件2 voidprint(inta); //聲明函數(shù)print3 voidprint1(inta); //聲明函數(shù)print14 voidmain()5 {6 intn; //定義整型變量n7 cin>>n; //接收用戶的鍵盤輸入8 cout<<"非遞歸輸出:"; //輸出提示9 print(n); //調(diào)用非遞歸函數(shù)print10 cout<<endl; //輸出換行11 cout<<"遞歸輸出:";12 print1(n); //調(diào)用遞歸函數(shù)print113 cout<<endl;14 }15 voidprint(inta) //定義非遞歸函數(shù)16 {17 while(a>0) //a>0成立則一直執(zhí)行18 {19 cout<<a%10<<""; //循環(huán)輸出位20 a=a/10; //a的值為a整除10后的商21 }22 }23 voidprint1(inta) //定義遞歸函數(shù)24 {25 if(a>0) //a>0成立則執(zhí)行26 {27 cout<<a%10<<""; //循環(huán)輸出位28 print1(a/10); //遞歸輸出29 }30 }思考和習(xí)題C++中,函數(shù)定義的格式是怎么樣的?需要注意哪些事項(xiàng)?在main()函數(shù)中允許帶兩個(gè)參數(shù),一個(gè)為argc,整型數(shù)據(jù)類型,另一個(gè)是指向字符型的指針數(shù)組argv[],在具

溫馨提示

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

評(píng)論

0/150

提交評(píng)論