freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

函數(shù)是c程序的基本模塊可將一些功能相對(duì)獨(dú)立的或經(jīng)常(留存版)

2025-07-11 07:55上一頁面

下一頁面
  

【正文】 全局靜態(tài)變量是指用 static修飾的全局變量 。 // fun2()定義在文件 cout″n=″nendl。 ( 2) 局部生命期 在函數(shù)內(nèi)部或塊中定義的標(biāo)識(shí)符具有局部生命期 , 其生命期開始于執(zhí)行到該函數(shù)或塊的標(biāo)識(shí)符聲明處 , 結(jié)束于該函數(shù)或塊的結(jié)束處 。 X=。 else y=n*fac(n1)。 return 24。 這是一個(gè)典型的遞歸問題 , 遞歸結(jié)束于只搬動(dòng)一個(gè)盤子 。C39。 return。i=19。 } void main(){ cout3+5=sum(3,5) endl。 } 缺省變?cè)? 1 2 3 延時(shí) 3個(gè)時(shí)間單位 1 2 3 4 5 延時(shí) 5個(gè)時(shí)間單位 缺省參數(shù)通過表達(dá)式給出,所以可以使用 函數(shù)調(diào)用 ,如: int fun1(int a=rand())。 while((ch), ch!= ′\n′){ if (IsNumber(ch)) cout″是數(shù)字字符 ″e(cuò)ndl。頭文件中定義用戶自定義的數(shù)據(jù)類型,所有的程序?qū)崿F(xiàn)則放在不同的源程序文件中 。 這種方式適用于嵌入用戶自己建立的頭文件 。 ifndef與 ifdef作用一樣,只是選擇的條件相反。 文件包含(嵌入)指令 include 文件包含 用 include指令 , 預(yù)處理后將指令中指明的源程序文件嵌入到當(dāng)前源程序文件的指令位置處 。具體地說,頭文件中可以包括:用戶構(gòu)造的數(shù)據(jù)類型(如枚舉類型),外部變量,外部函數(shù)、常量和內(nèi)聯(lián)函數(shù)等具有一定通用性或常用的量,而一般性的變量和函數(shù)定義不宜放在頭文件中。 內(nèi)聯(lián)函數(shù) 請(qǐng)看如下程序段,讀入一行字符串,逐個(gè)判斷是否為數(shù)字字符: include inline IsNumber(char ch) { return ch=′0′amp。 } void main(){ delay(3)。 函數(shù)重載 3+5= 調(diào)用 sum(3,5 ) 函數(shù)sum(3,5 ) return 8 += 調(diào)用sum(, ) 函數(shù) double sum(, ) return +4+8= 調(diào)用 sum(, 4, 8 ) 函數(shù) float sum(, 4, 8 ) return 結(jié)束 8 【 例 4. 16】 重載函數(shù)的應(yīng)用 。 include include int fib(int n){ if(n==0) return 0。 coutendl。A39。 A柱 B柱 C柱 分析: 1 A柱只有一個(gè)盤子的情況: A柱 ?C柱; 2 A柱有兩個(gè)盤子的情況:小盤 A柱 ?B柱 , 大盤 A柱 ?C柱 ,小盤 B柱 ?C柱 。 return 1。 函數(shù)的遞歸調(diào)用 【 例 4. 12】 求 4! include int fac(int n){ int y。 2 可見性 下面的程序段和圖示顯示作用域與可見性 。 具有靜態(tài)生命期的標(biāo)識(shí)符存放在靜態(tài)數(shù)據(jù)區(qū) , 屬于靜態(tài)存儲(chǔ)類型 , 如全局變量 、靜態(tài)全局變量 、 靜態(tài)局部變量 。 //外部函數(shù)聲明,等價(jià)于 extern void fun2()。i5。i++) coutst()39。 即當(dāng)塊結(jié)束時(shí) , 局部靜態(tài)變量空間仍然保持 ,直到整個(gè)程序文件結(jié)束時(shí)該局部靜態(tài)變量空間才釋放 ,生命期結(jié)束 。 文件中定義的全局變量和函數(shù)都具有文件作用域 。 cout n39。,39。 cout調(diào)用前:實(shí)參 a=a39。 cinab。 } void fun1(int a,int b){ float x=3。局部變量在定義時(shí)若未初始化 , 其值為隨機(jī)數(shù) 。分配堆區(qū)時(shí)內(nèi)存不處理。palindrome(m*m) amp。 cout”1 財(cái)務(wù)報(bào)表” endl。 它使用了函數(shù)原型說明 。,39。 分析:函數(shù)為計(jì)算三角形面積,一般三角形返回面積值,若不能構(gòu)成三角形則返回 1。 } void main(){ int n=3。 float x=。n)=power(x,n)endl。一般情況下, 實(shí)參和形參的個(gè)數(shù)和排列順序應(yīng)一一對(duì)應(yīng),并且對(duì)應(yīng)參數(shù)應(yīng)類型匹配(賦值兼容) ,即實(shí)參的類型可以轉(zhuǎn)化為形參類型。從函數(shù)的定義看出,函數(shù)頭正是用來反映函數(shù)的功能和使用接口,它所定義的是 “ 做什么 ” ,在這部分必須明確 “ 黑匣子 ” 的輸入輸出部分, 輸出就是函數(shù)的返回值,輸入就是參數(shù) 。 在結(jié)構(gòu)化程序設(shè)計(jì)中,函數(shù)是將任務(wù)進(jìn)行模塊劃分的基本單位。 函數(shù)之間的調(diào)用關(guān)系見下圖: 函數(shù)概述 main ( ) fun2( ) fun1( ) fun3( ) fun1_1( ) fun2_1( ) fun2_2( ) 圖 函數(shù)調(diào)用層次關(guān)系 函數(shù)概述 函數(shù) 按是否帶有參數(shù) , 分為 : 無參函數(shù) 和 有參函數(shù) 函數(shù)按其是否系統(tǒng)預(yù)定義分為兩類,一類是編譯系統(tǒng)預(yù)定義的,稱為 庫函數(shù) 或 標(biāo)準(zhǔn)函數(shù) ,如一些常用的數(shù)學(xué)計(jì)算函數(shù)、字符串處理函數(shù)、圖形處理函數(shù)、標(biāo)準(zhǔn)輸入輸出函數(shù)等。 程序如下 : include float max(float x,float y){ return(x=y?x:y)。 return pow。,3 ) 函數(shù)power(39。 coutpower(n39。n)=power(c,n)endl。 cinabc。 } 函數(shù)返回值 函數(shù)可以有返回值 , 也可以沒有返回值 。 switch(choice){ case 1: account_report()。//函數(shù)原型 void main(){ coutsetw(10)39。 for(intj=0。 coutnendl。 這種 “ 動(dòng)態(tài) ” 是通過棧由系統(tǒng)自動(dòng)管理進(jìn)行的 。 塊中定義的標(biāo)識(shí)符 , 作用域在塊內(nèi) 。\t39。,39。 cout n39。i39。 其空間分配于塊始 , 空間釋放于塊終 , 且由系統(tǒng)自動(dòng)進(jìn)行 。 for(i=0。 } void main(){ int i。 在由多個(gè)源程序文件組成的程序中 , 如果一個(gè)文件要使用另一個(gè)文件中定義的全局變量或函數(shù) , 這些源程序文件之間通過外部類型的變量和函數(shù)進(jìn)行溝通 。靜態(tài)存儲(chǔ)類型的作用域與外部存儲(chǔ)類型相反,一旦定義為靜態(tài)存儲(chǔ)類型,就限制該變量或函數(shù)只能在定義它的文件中使用。具有動(dòng)態(tài)生命期的變量存放在堆區(qū)。 在函數(shù)調(diào)用中,有這樣兩種情況,一種是在函數(shù) A的定義中有調(diào)用函數(shù) A的語句,即自己調(diào)用自己;另一種是函數(shù)A的定義中出現(xiàn)調(diào)用函數(shù) B的語句,而函數(shù) B的定義中也出現(xiàn)調(diào)用函數(shù) A的語句,即相互調(diào)用。 } n=4 cout4。 24 遞歸函數(shù)的執(zhí)行分為 “ 遞推 ” 和 “ 回歸 ” 兩個(gè)過程,這兩個(gè)過程由遞歸終止條件控制,即 逐層遞推 ,直至 遞歸終止條件 ,然后 逐層回歸 。 else{ hanoi(n1,source,target,temp)。 if(n10) return。 coutendl。 } 函數(shù)的遞歸調(diào)用 圖 遞歸求解斐波那契數(shù)列調(diào)用樹 同其他算法相比,用遞歸算法編制的程序 非常簡潔易讀 ,但缺點(diǎn)是增加了內(nèi)存的開銷,在遞推的過程中會(huì) 占用大量棧空間 ,且連續(xù)的調(diào)用返回操作 占用較多 CPU時(shí)間 。這樣的函數(shù)在調(diào)用時(shí),對(duì)于缺省參數(shù),可以給出實(shí)參值,也可以不給出參數(shù)值。例如: int fun2 (int, int =10, int =20)。這些文件均以 .h的形式命名,存放在系統(tǒng)目錄的 include子目錄 下。替換過程稱為宏替換或宏展開。這種情況就要使用條件編譯指令。可以通過在該指令前面安排宏定義來控制編譯不同的程序段。 宏替換只是字符串和標(biāo)識(shí)符之間的簡單替換,預(yù)處理本身不做任何數(shù)據(jù)類型和合法性檢查,也不分配內(nèi)存單元 。 4. 9 頭文件與多文件結(jié)構(gòu) 4. 9. 1 頭文件 在將一個(gè)程序分解成若干個(gè)文件時(shí),需要考慮標(biāo)識(shí)符在其他文件中的可見性。參數(shù)名也可省略 void fun1(){…} int fun2(int a, int b, int c) {…}// 定義中不再給出缺省值 缺省變?cè)? 內(nèi)聯(lián)函數(shù) 當(dāng)程序執(zhí)行函數(shù)調(diào)用時(shí),系統(tǒng)要建立棧空間,保護(hù)現(xiàn)場,傳遞參數(shù)以及控制程序執(zhí)行的轉(zhuǎn)移等等,這些工作需要系統(tǒng)時(shí)間和空間的開銷。 缺省參數(shù)的函數(shù)調(diào)用:缺省參數(shù)的 值 或 表達(dá)方式 在編譯時(shí)確定,即其值通過 表達(dá)式 給出,但表達(dá)式必須有意義;缺省值還可以是全局常量、全局變量,甚至可以 通過函數(shù)調(diào)用給出 ;但不能通過局部變量給出,因?yàn)榫植孔兞康闹翟趫?zhí)行時(shí)才有意義。 函數(shù)的遞歸調(diào)用 函數(shù)的一些高級(jí)議題 4. 7. 1 函數(shù)重載 4. 7. 2 缺省變?cè)? 4. 7. 3 內(nèi)聯(lián)函數(shù) 函數(shù)重載 在 C++中,如果需要定義幾個(gè)功能相似,而參數(shù)類型不同的函數(shù),那么這樣的幾個(gè)函數(shù)可以使用相同的函數(shù)名,這就是 函數(shù)重載 。如果先遞歸后輸出余數(shù),則是在回歸的過程中輸出,實(shí)現(xiàn)的就是正序輸出。 } void main(){ int n。 //將最后一個(gè)盤子搬到目標(biāo)柱 hanoi(n1,temp,source,target)。遞歸調(diào)用同普通的函數(shù)調(diào)用一樣,每當(dāng)調(diào)用發(fā)生時(shí),在棧中分配單元保存返回地址以及參數(shù)和局部變量;而與普通的函數(shù)調(diào)用不同的是,由于遞推的過程是一個(gè)逐層調(diào)用的過程,因此存在一個(gè)逐層連續(xù)的參數(shù)入棧過程,直至遇到遞歸終止條件時(shí),才開始回歸,這時(shí)才逐層釋放棧空間,返回到上一層,直至最后返回到主調(diào)函數(shù)。 fac(4)= cout2。本節(jié)只介紹直接遞歸。 2 可見性 可見性 從另一個(gè)角度說明標(biāo)識(shí)符的有效性,可見性與作用域具有一定的一致性。 一個(gè)全局變量和一個(gè)靜態(tài)全局變量在使用上是不同的,其他文件通過外部變量聲明可以使用一個(gè)全局變量,但卻無法使用靜態(tài)全局變量, 靜態(tài)全局變量只能被定義它的文件所獨(dú)享 。但其他文件如果要使用這個(gè)文件中定義的全局變量和函數(shù),必須在使用前用 “ extern”作外部聲明,外部聲明通常放在文件的開頭。i5。i++) coutat()39。 變量的存儲(chǔ)類型 register:為提高程序運(yùn)行效率 , 可以將某些變量保存在寄存器中 , 即說明為寄存器變量 , 但不提倡使用 。j endl。i39。 int t。 } 【 例 4. 8】 設(shè)計(jì)函數(shù)完成兩數(shù)交換 , 用主函數(shù)進(jìn)行測試 , 看結(jié)果如何 。 函數(shù)也是一個(gè)塊 。 ( 5) 釋放被調(diào)函
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1