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

正文內(nèi)容

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

2025-06-21 07:55上一頁面

下一頁面
  

【正文】 ndl。 } 【 例 4. 8】 設計函數(shù)完成兩數(shù)交換 , 用主函數(shù)進行測試 , 看結果如何 。 swap(a,b)。 int t。這些同名變量各自在自己的作用域中可見,在其它地方不可見 。i39。\t39。j endl。 存儲類型決定了變量的 生命期 , 變量生命期指從獲得空間到空間釋放之間的時期 。 變量的存儲類型 register:為提高程序運行效率 , 可以將某些變量保存在寄存器中 , 即說明為寄存器變量 , 但不提倡使用 。 //局部靜態(tài)變量 t++。i++) coutat()39。 } 變量的存儲類型 i= 0 t= 100 1 2 345101 變量的存儲類型 i= 0 t=100 1 2101 345102103104105 include st(){ static int t=100。i5。 coutendl。但其他文件如果要使用這個文件中定義的全局變量和函數(shù),必須在使用前用 “ extern”作外部聲明,外部聲明通常放在文件的開頭。 fun2()。 一個全局變量和一個靜態(tài)全局變量在使用上是不同的,其他文件通過外部變量聲明可以使用一個全局變量,但卻無法使用靜態(tài)全局變量, 靜態(tài)全局變量只能被定義它的文件所獨享 。 所有具有文件作用域的標識符都具有靜態(tài)生命期 。 2 可見性 可見性 從另一個角度說明標識符的有效性,可見性與作用域具有一定的一致性。 { float m=。本節(jié)只介紹直接遞歸。 if(n==0||n==1) y=1。 fac(4)= cout2。 cout24。遞歸調(diào)用同普通的函數(shù)調(diào)用一樣,每當調(diào)用發(fā)生時,在棧中分配單元保存返回地址以及參數(shù)和局部變量;而與普通的函數(shù)調(diào)用不同的是,由于遞推的過程是一個逐層調(diào)用的過程,因此存在一個逐層連續(xù)的參數(shù)入棧過程,直至遇到遞歸終止條件時,才開始回歸,這時才逐層釋放??臻g,返回到上一層,直至最后返回到主調(diào)函數(shù)。 問題轉(zhuǎn)化成搬動 n1個盤子的問題 , 同樣 , 將 n1個盤子看成上面 n2個盤子和下面第 n1個盤子的情況 , 進一步轉(zhuǎn)化為搬動 n2個盤子的問題 , …… , 類推下去 , 一直到最后成為搬動一個盤子的問題 。 //將最后一個盤子搬到目標柱 hanoi(n1,temp,source,target)。,39。 } void main(){ int n。 n=2 cout2。如果先遞歸后輸出余數(shù),則是在回歸的過程中輸出,實現(xiàn)的就是正序輸出。 } void main(){ for(int i=0。 函數(shù)的遞歸調(diào)用 函數(shù)的一些高級議題 4. 7. 1 函數(shù)重載 4. 7. 2 缺省變元 4. 7. 3 內(nèi)聯(lián)函數(shù) 函數(shù)重載 在 C++中,如果需要定義幾個功能相似,而參數(shù)類型不同的函數(shù),那么這樣的幾個函數(shù)可以使用相同的函數(shù)名,這就是 函數(shù)重載 。 } float sum(float a,float b,float c){ return a+b+c。 缺省參數(shù)的函數(shù)調(diào)用:缺省參數(shù)的 值 或 表達方式 在編譯時確定,即其值通過 表達式 給出,但表達式必須有意義;缺省值還可以是全局常量、全局變量,甚至可以 通過函數(shù)調(diào)用給出 ;但不能通過局部變量給出,因為局部變量的值在執(zhí)行時才有意義。 //等同于 delay(5) cout“延時 5個時間單位 endl。參數(shù)名也可省略 void fun1(){…} int fun2(int a, int b, int c) {…}// 定義中不再給出缺省值 缺省變元 內(nèi)聯(lián)函數(shù) 當程序執(zhí)行函數(shù)調(diào)用時,系統(tǒng)要建立棧空間,保護現(xiàn)場,傳遞參數(shù)以及控制程序執(zhí)行的轉(zhuǎn)移等等,這些工作需要系統(tǒng)時間和空間的開銷。 } void main(){ char ch。 4. 9 頭文件與多文件結構 4. 9. 1 頭文件 在將一個程序分解成若干個文件時,需要考慮標識符在其他文件中的可見性。 多文件結構通過工程進行管理,在工程中建立若干用戶定義的頭文件.h和源程序文件 .cpp。 宏替換只是字符串和標識符之間的簡單替換,預處理本身不做任何數(shù)據(jù)類型和合法性檢查,也不分配內(nèi)存單元 。 而 第二種方式 編譯器將首先在當前文件所在目錄下搜索 , 如果找不到再按標準方式搜索 ??梢酝ㄟ^在該指令前面安排宏定義來控制編譯不同的程序段。 undef指令用來取消 define指令所定義的符號,這樣可以根據(jù)需要打開和關閉符號。這種情況就要使用條件編譯指令。 格式為: include 文件名 或 include ″文件名 ″ 第一種 方式稱為 標準方式 , 預處理器將在 include子目錄下搜索由文件名所指明的文件 。替換過程稱為宏替換或宏展開。 4. 9. 2 多文件結構 在開發(fā)較大程序時,通常將其分解為多個源程序文件,每個較小的程序用一個源程序文件建立。這些文件均以 .h的形式命名,存放在系統(tǒng)目錄的 include子目錄 下。amp。例如: int fun2 (int, int =10, int =20)。 cout“延時 3個時間單位 endl。這樣的函數(shù)在調(diào)用時,對于缺省參數(shù),可以給出實參值,也可以不給出參數(shù)值。 include sum(int a,int b){ return a+b。 } 函數(shù)的遞歸調(diào)用 圖 遞歸求解斐波那契數(shù)列調(diào)用樹 同其他算法相比,用遞歸算法編制的程序 非常簡潔易讀 ,但缺點是增加了內(nèi)存的開銷,在遞推的過程中會 占用大量棧空間 ,且連續(xù)的調(diào)用返回操作 占用較多 CPU時間 。 else if(n==1) return 1。 coutendl。 } 函數(shù)的遞歸調(diào)用 n=247 cout7。 if(n10) return。,39。 else{ hanoi(n1,source,target,temp)。 3 A柱有 n個盤子的情況:將此問題看成上面 n1個盤子和最下面第 n個盤子的情況 。 24 遞歸函數(shù)的執(zhí)行分為 “ 遞推 ” 和 “ 回歸 ” 兩個過程,這兩個過程由遞歸終止條件控制,即 逐層遞推 ,直至 遞歸終止條件 ,然后 逐層回歸 。 n=1 n=3 cout3。 } n=4 cout4。 coutn39。 在函數(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)用。 int m=1。具有動態(tài)生命期的變量存放在堆區(qū)。 具有靜態(tài)生命期的標識符在未被用戶初始化的情況下 , 系統(tǒng)會自動將其初始化為全 0。靜態(tài)存儲類型的作用域與外部存儲類型相反,一旦定義為靜態(tài)存儲類型,就限制該變量或函數(shù)只能在定義它的文件中使用。 int n。 在由多個源程序文件組成的程序中 , 如果一個文件要使用另一個文件中定義的全局變量或函數(shù) , 這些源程序文件之間通過外部類型的變量和函數(shù)進行溝通 。i++) coutst()39。 } void main(){ int i。\t39。 for(i=0。 局部靜態(tài)變量 【 例 4. 10】 自動變量與局部靜態(tài)變量的區(qū)別 。 其空間分配于塊始 , 空間釋放于塊終 , 且由系統(tǒng)自動進行 。 如果某個文件中說明了具有文件作用域的標識符 , 該文件又被另一個文件包含 , 則該標識符的作用域延伸到新的文件中 。i39。\t39。 cout n39。b=bendl。,39。,39。\t39。 cout“a=a39。 塊中定義的標識符 , 作用域在塊內(nèi) 。 fun2(x)。 這種 “ 動態(tài) ” 是通過棧由系統(tǒng)自動管理進行的 。 局部變量 打印 main()中的 t= 調(diào)用 fun( ) 函數(shù) fun( ) 打印 fun()中的 t=5 打印 main()中的 t= t= t = 5 【 例 4. 9】 使用局部變量的例子 。 coutnendl。參見第七章。 for(intj=0。amp。//函數(shù)原型 void main(){ coutsetw(10)39。 cout”2 工程報表” endl。 switch(choice){ case 1: account_report()。 include void menu_print()。 } 函數(shù)返回值 函數(shù)可以有返回值 , 也可以沒有返回值 。 c 39。 cinabc。設計一個主函數(shù)完成函數(shù)測試。n)=power(c,n)endl。 float x=。 coutpower(n39。 char c=39。,3 ) 函數(shù)power(39。 coutpower(c39。 return pow。而對應參數(shù)的參數(shù)名則不要求相同。 程序如下 : include float max(float x,float y){ return(x=y?x:y)。因此,只有那些功能上起自變量作用的變量才必須作為參數(shù)定義在參數(shù)表中;函數(shù)體中具體描述 “ 如何做 ” ,因此除參數(shù)之外的為實現(xiàn)算法所需用的變量應當定義在函數(shù)體內(nèi)。 函數(shù)之間的調(diào)用關系見下圖: 函數(shù)概述 main ( ) fun2( ) fun1( ) fun3( ) fun1_1( ) fun2_1( ) fun2_2( ) 圖 函數(shù)調(diào)用層次關系 函數(shù)概述 函數(shù) 按是否帶有參數(shù) , 分為 : 無參函數(shù) 和 有參函數(shù) 函數(shù)按其是否系統(tǒng)預定義分為兩類,一類是編譯系統(tǒng)預定義的,稱為 庫函數(shù) 或 標準函數(shù) ,如一些常用的數(shù)學計算函數(shù)、字符串處理函數(shù)、圖形處理函數(shù)、標準輸入輸出函數(shù)等。 在面向?qū)ο蟮某绦蛟O計中,類中所封裝的操作是用函數(shù)進行描述的,因此函數(shù)在 C++程序中具有非常重要的意義。 在結構化程序設計中,函數(shù)是將任務進行模塊劃分的基本單位。 而其他一般函數(shù)既可以調(diào)用也可以被調(diào)用 。從函數(shù)的定義看出,函數(shù)頭正是用來反映函數(shù)的功能和使用接口,它所定義的是 “ 做什么 ” ,在這部分必須明確 “ 黑匣子 ” 的輸入輸出部分, 輸出就是函數(shù)的返回值,輸入就是參數(shù) 。 其中求兩個實數(shù)中的較大數(shù)用函數(shù)完成 。一般情況下, 實參和形參的個數(shù)和排列順序應一一對應,并且對應參數(shù)應類型匹配(賦值兼容) ,即實參的類型可以
點擊復制文檔內(nèi)容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1