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

正文內(nèi)容

c高校教材第五章函數(shù)-文庫吧資料

2025-05-19 21:28本頁面
  

【正文】 t *,int )。 array++。in。 } void Sum(int array[],int n) { int sum=0。 Sum(a,10)。 void Sum(int [],int )。 一旦把數(shù)組作為參數(shù)傳遞到函數(shù)中 , 則在棧上定義了指針 , 可以對該指針進(jìn)行遞增 、 遞減操作 。 // 錯(cuò)誤 ! func(20,30)。 void func(int,int b=4)。 如果一組重載函數(shù) ( 可能帶有默認(rèn)參數(shù) ) 都允許相同實(shí)參個(gè)數(shù)的調(diào)用 , 將會引起調(diào)用的二義性 。 } ③ void point() { return point(3,4)。 //只能從右到左順序匹配默認(rèn) 3. 默認(rèn)參數(shù)與函數(shù)重載 ? 默認(rèn)參數(shù)可將一系列簡單的重載函數(shù)合成為一個(gè) 。 //參數(shù) c和 d默認(rèn) func()。 //right! 對于第二個(gè)函數(shù)聲明 , 其調(diào)用: func(10,15,20,30)。 例如: void func(int a=1, int b, int c=3, int d=4)。 2. 默認(rèn)參數(shù)的順序規(guī)定 ? 如果一個(gè)函數(shù)中有多個(gè)默認(rèn)參數(shù) , 則 在形式參數(shù)分布中 , 默認(rèn)參數(shù)應(yīng)從右至左逐個(gè)定義 。 //a 設(shè)置為 5 由此可見 , 這種形式的函數(shù)在調(diào)用時(shí)具有靈活性 。 //函數(shù)聲明 調(diào)用: delay()。這樣 , 在函數(shù)調(diào)用時(shí) , 對應(yīng)的實(shí)參就可以省略 。 } //這是一個(gè)產(chǎn)生時(shí)延的函數(shù) 調(diào)用: delay(2)。 k100000。 j1000。 i=a。 //函數(shù)聲明 void delay(int a){ // 函數(shù)定義 int sum=0。 通常 , 在調(diào)用函數(shù)時(shí) , 要為函數(shù)的每個(gè)形式參數(shù)指定對應(yīng)的實(shí)在參數(shù) 。 unsigned int abs(unsigned int)。 void func(INT)。 例如: typedef int INT。)。 2)采用引用參數(shù) 不能 區(qū)分函數(shù); 例如: void print(double)。 int add(int,float)。 (2)實(shí)現(xiàn)函數(shù)的重載必須滿足下列條件之一: ① 參數(shù)表中對應(yīng)的參數(shù)類型不同; ② 參數(shù)表中參數(shù)個(gè)數(shù)不同; ③ 參數(shù)表中不同類型參數(shù)的次序不同 。 注:實(shí)際上 abs是一個(gè)標(biāo)準(zhǔn)庫函數(shù) , 對應(yīng)的頭文件是 。 abs(9) —— int abs(int)。 ?函數(shù)重載:多個(gè)功能相同 , 但 參數(shù)類型或參數(shù)個(gè)數(shù)不同 的函數(shù)使用同一個(gè)函數(shù)名 , 稱為 函數(shù)重載 。 如: int abs(int)。 //求雙精度型數(shù)的絕對值 由于兩個(gè)函數(shù)都是求絕對值的 , 如果采用同一個(gè)函數(shù)名 ,即表示成函數(shù)重載 , 則更符合人們的習(xí)慣 。 則應(yīng)該有兩個(gè)求絕對值函數(shù): int abs(int)。 例如: “ +”運(yùn)算符可以用來進(jìn)行整數(shù) 、 浮點(diǎn)數(shù)甚至指針數(shù)據(jù)的加法運(yùn)算; cin、 cout這兩個(gè)預(yù)定義的流類對象也能適應(yīng)不同數(shù)據(jù)類型的輸入輸出 。 要求將 N個(gè)盤子從 A針移到 C針 , 在移動過程中可以借助 B針 ,但每次只允許移動一個(gè)盤子 , 并且在移動過程中在三根針上都保持大盤在下 , 小盤在上 。 ( 課外練習(xí) ) hanoi( 漢諾 ) 塔問題描述為: 有三根針 A, B, C。 return jc。i=n。 long jc=1。 例如:編寫一函數(shù)用于求 n!。 ? 在非常講究程序執(zhí)行效率的場合 , 應(yīng)盡量減少使用遞歸編程技術(shù);相反 , 在強(qiáng)調(diào)程序結(jié)構(gòu) , 程序的易讀性和可維護(hù)性的場合 , 卻鼓勵(lì)使用遞歸程序設(shè)計(jì)技術(shù) 。但是 , 函數(shù)的遞歸調(diào)用明顯會增加系統(tǒng)開銷 。 函數(shù)之間靠參數(shù)傳遞和返回值來聯(lián)系 , 函數(shù)看作為黑盒 。 調(diào)用過程中 , 提供給 fact的實(shí)參按: n, n1, n2, …… ,1, 0規(guī)律遞減; 調(diào)用的返回值卻按: 1, 1, 2*1, 3*2*1, …… , ( n) *(n1)*…… *1的規(guī)律變化 。 else return(fact(n1)*n)。 return 1。 cout endl n!= result endl。 cin n。 int n。 long fact(int)。 按照以上分析 , 求 n!可以用遞歸的方法解決 。 例如:求 n! 分析:計(jì)算 n!的公式如下: n!= 1 (n=0) n*(n1)! (n0) 從以上表達(dá)式可以看到: (1)當(dāng) n0時(shí) , n!=n*(n1)!, 求 n! 的問題就轉(zhuǎn)化成了求 n*(n1)! 的問題 , 而求(n1)! 的問題與求 n! 的解法相同 , 只是求階乘的對象的值減去 1。 注意 :如果函數(shù)中沒有確定的結(jié)束遞歸的條件 ,將會造成無限遞歸 。 2) 可以通過轉(zhuǎn)化過程使問題得到解決 。 我們注意到: fn1()函數(shù)體內(nèi)并沒有出現(xiàn)自身的調(diào)用語句 ,而是出現(xiàn)在被調(diào)函數(shù) fn2()的函數(shù)體中 。 c=fn1(s1)。 b=fn2(a+1)。 間接遞歸調(diào)用例: int fn2(int )。 即:函數(shù)遞歸調(diào)用的基本形式可 分為: (1)直接遞歸調(diào)用 :即函數(shù)的函數(shù)體中直接包含函數(shù)自身的調(diào)用語句 。 ? 遞歸調(diào)用是嵌套調(diào)用的特例 。 如果所出現(xiàn)的函數(shù)調(diào)用是對自身的調(diào)用 , 這種特殊的嵌套調(diào)用形式就是 函數(shù)的遞歸調(diào)用 。 在嵌套調(diào)用中 , 如果函數(shù) A要調(diào)用函數(shù) B, 函數(shù) B的定義或函數(shù) B的原型必須出現(xiàn)在函數(shù) A的定義語句之前 。 這是一個(gè)函數(shù)嵌套調(diào)用的例子 。 5.函數(shù)的嵌套調(diào)用 例如:再次考察 ( p:146 例 54) 程序 : main(), funcA(),funcB( ) 。 如果 被調(diào)函數(shù)的函數(shù)體 不再出現(xiàn)對另一函數(shù)的調(diào)用 , 就是 單重嵌套 。 1) 概念 ? 函數(shù)的嵌套調(diào)用 :是指一個(gè)函數(shù)的函數(shù)體中包含一個(gè)或多個(gè)函數(shù)調(diào)用語句 。為避免這一副作用 , 在程序設(shè)計(jì)中可根據(jù)需要在指針和引用參數(shù)前加 const修飾符 , 以此限制函數(shù)體對參數(shù)的寫操作 。 ? 用引用作為函數(shù)的參數(shù)的優(yōu)點(diǎn): 引用具有指針的威力 , 但是 , 調(diào)用引用傳遞的函數(shù)時(shí) ,可讀性卻比指針傳遞好;引用具有傳值方式函數(shù)調(diào)用語法的簡單性與可讀性 , 但是 , 威力卻比傳值方式強(qiáng) 。 ( 3) 使用引用傳遞函數(shù)的參數(shù) , 在內(nèi)存中并沒有產(chǎn)生實(shí)參的副本 , 是直接對實(shí)參操作 ; 使用一般變量傳遞函數(shù)的參數(shù) , 需要給形參分配存儲單元 , 形參與實(shí)參就占用不同的存儲單元 , 所以 , 形參變量的值是實(shí)參變量的副本 。傳遞引用時(shí) , 被調(diào)函數(shù)的形參就作為原來主調(diào)函數(shù)中的實(shí)參變量或?qū)ο蟮囊粋€(gè)別名來使用 , 所以 ,在被調(diào)函數(shù)中對形參變量的操作就是對其相應(yīng)的主調(diào)函數(shù)中的目標(biāo)對象的操作 。 }// 運(yùn)行結(jié)果: a=3,b=8 after swapping … a=8,b=3 幾點(diǎn)說明 ( 1) 用引用作為函數(shù)的參數(shù)可使函數(shù)返回多個(gè)值 。 couta=a,b=bendl。 swap(a,b)。 如:對應(yīng)上面定義的 swap函數(shù) , 相應(yīng)的主調(diào)函數(shù)可寫為: int main() { int a=3,b=8。( 引用運(yùn)算符 ) 的參數(shù)即為引用形參 。 ?一個(gè)函數(shù)的參數(shù)也可定義成引用的形式 。, intamp。 y=temp。y) {//函數(shù)的形參 x, y都是引用 int temp=x。 必須以變量 a和 b的地址作為實(shí)參 函數(shù)定義的頭部為: void swap(int *x,int *y) III. 傳遞引用 (即: 引用作為函數(shù)的參數(shù) ) 例如: void swap(int amp。a,amp。 } 運(yùn)行結(jié)果: a=3,b=8 after swapping … a=8,b=3 從這個(gè)例子中我們可以看出: 在程序設(shè)計(jì)中通過定義 函數(shù)的參數(shù)是指針類型數(shù)據(jù)可以使函數(shù)返回不止一個(gè)的值 。 //必須用 “ *指針變量名 ” 的形式操作目標(biāo)數(shù)據(jù) *x=*y。 return 1。 //必須以變量 a和 b的地址作為實(shí)參 coutafter swapping...\n。a,amp。 couta=a,b=bendl。 void swap(int *,int *)。 b=temp。 } void swap(int a,int b) { int temp=a。 coutx=x,y=y,z=zendl。 coutx=x,y=y,z=zendl。 int main() { int x=5,y=3,z=7。 例如: // includeiostream using namespace std。 ? 特點(diǎn):被調(diào)函數(shù)對參數(shù)的修改不會影響主調(diào)函數(shù)用做實(shí)參的數(shù)據(jù)對象 。 ( 2) 傳遞方式:有三種傳遞方式 (形實(shí)結(jié)合方式 ) I. 傳值 II. 傳遞指針 III. 傳遞引用 I. 傳值( P: 137) ? 傳值: 在函數(shù)被調(diào)用時(shí) , 將實(shí)參的值存入對應(yīng)形參的參數(shù)區(qū)中 。 ? 所謂參數(shù)傳遞是指實(shí)在參數(shù)與形式參數(shù)之間的數(shù)據(jù)傳遞 。 函數(shù)調(diào)用過程中的運(yùn)行棧 P:147 運(yùn)行棧會隨著程
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1