版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程內容安排定義函數(shù)函數(shù)參數(shù)及原型調用函數(shù)變量的作用域函數(shù)的作用域函數(shù)重載綜合練習思考和習題定義函數(shù)在C++程序中調用函數(shù)之前,首先要對函數(shù)進行定義。如果調用此函數(shù)在前,函數(shù)定義在后,就會產(chǎn)生編譯錯誤。為了使函數(shù)的調用不受函數(shù)定義位置的影響,可以在調用函數(shù)前進行函數(shù)的定義。這樣,不管函數(shù)是在哪里定義的,只要在調用前進行函數(shù)的定義,就可以保證函數(shù)調用的合法性。函數(shù)定義的一般形式如下:返回類型函數(shù)名(參數(shù)列表){…
函數(shù)體}函數(shù)定義應用示例該范例定義一個函數(shù)func,該函數(shù)判斷指定的參數(shù)與0的比較結果,大于0則返回值1,等于0則返回0,小于0則返回-1。并在主函數(shù)main()中調用該函數(shù),使讀者可以看到該函數(shù)的執(zhí)行結果。代碼清單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; //調用函數(shù)17 }函數(shù)參數(shù)及原型函數(shù)一般都帶有參數(shù)列表,這個參數(shù)列表稱為形式參數(shù),而在調用函數(shù)時,實際的參數(shù)和形式參數(shù)將會有數(shù)據(jù)傳遞。函數(shù)原型也稱函數(shù)聲明或函數(shù)模型。在主調函數(shù)中,如果要調用另一個函數(shù),則須在本函數(shù)或本文件中的開頭將要被調用的函數(shù)事先作一聲明。調用函數(shù)一般來說,C++程序都是從主函數(shù)main()開始執(zhí)行,當執(zhí)行到函數(shù)調用語句時,就會轉去執(zhí)行調用函數(shù),執(zhí)行后仍然返回到主函數(shù),直至程序結束。當調用一個函數(shù)時,整個調用過程分為三步進行,第一步是參數(shù)傳遞,第二步是函數(shù)體執(zhí)行,第三步是返回,即返回到函數(shù)調用表達式的位置。變量的作用域變量的作用域是指該變量的作用范圍。在一個函數(shù)內部說明的變量是內部變量,其只在該函數(shù)范圍內有效。也就是說,只有在包含變量說明的函數(shù)內部,才能使用被說明的變量,在此函數(shù)之外就不能使用這些變量了。因此,這些內部變量被稱為局部變量。與局部變量相對應的,C++中也有這全局變量的概念。全局變量又稱為外部變量,其是在在函數(shù)外部定義的變量。
函數(shù)的作用域每個函數(shù)都構成了一個函數(shù)作用域,函數(shù)作用域的概念跟變量的存儲位置和生命期有關。函數(shù)的參數(shù)和在函數(shù)中聲明并定義的變量即局部變量,其被分配在堆棧上,隨著函數(shù)的執(zhí)行而生成,隨著函數(shù)的退出而消亡。函數(shù)重載函數(shù)重載是指同一個函數(shù)名可以對應著多個函數(shù)的實現(xiàn)。例如,可以給函數(shù)名add()定義多個函數(shù)實現(xiàn),該函數(shù)的功能是求和,即求兩個操作數(shù)的和。其中,一個函數(shù)實現(xiàn)是求兩個int型數(shù)之和,另一個實現(xiàn)是求兩個浮點型數(shù)之和,再一個實現(xiàn)是求兩個復數(shù)的和。每種實現(xiàn)對應著一個函數(shù)體,這些函數(shù)的名字相同,但是函數(shù)的參數(shù)的類型不同,這就是函數(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); //調用非遞歸函數(shù)print10 cout<<endl; //輸出換行11 cout<<"遞歸輸出:";12 print1(n); //調用遞歸函數(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 }思考和習題C++中,函數(shù)定義的格式是怎么樣的?需要注意哪些事項?在main()函數(shù)中允許帶兩個參數(shù),一個為argc,整型數(shù)據(jù)類型,另一個是指向字符型的指針數(shù)組argv[],在具
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程吊機租賃合同書
- 專業(yè)技術咨詢協(xié)議樣本
- 生產(chǎn)線租賃合同
- 2024超市承包經(jīng)營合同范本
- 怎樣確保凈身出戶離婚協(xié)議書的有效性
- 2024盆景植物出租合同
- 2024土地廠房轉讓合同范本
- 食堂承包經(jīng)營合同書格式
- 2024二手房買賣合同版深圳市二手房買賣合同
- 個人信用貸款還款
- 我的生涯發(fā)展報告
- 普通高中通用技術課程標準解讀學習教案
- 公共場所中文標識英文譯寫規(guī)范 第4部分:體育
- 2024年中國華能集團有限公司招聘筆試參考題庫附帶答案詳解
- 創(chuàng)業(yè)計劃書小紅書
- 角膜炎的原因和治療藥物選擇
- 電力電纜及附件基礎知識
- 品牌授權書中英文版本
- 鐵的氫氧化物(課件)
- 風光水多能互補電站建設
- 冷庫安全危險因素和管控與應急措施培訓課件
評論
0/150
提交評論