【正文】
and C++等多種,本節(jié)主要介紹常使用的 Turbo Visual C++。遞歸是 C語言程序設計中常見的函數(shù)調(diào)用形式,也是學習 C語言的一個重點和難點。 函數(shù) f u n c ()函數(shù) f u n c ()函數(shù) f u n c 1 ()函數(shù) f u n c 2 () 函數(shù) f u n c 3 ()? 遞歸應用舉例 下面我們以一個例子講解遞歸的調(diào)用。迭代和遞歸的區(qū)別是:迭代使用的是循環(huán)結(jié)構(gòu),遞歸使用的是選擇結(jié)構(gòu)。指針常常與地址、變量、數(shù)組和函數(shù)聯(lián)系在一起。指針包含的是變量的地址,而變量又擁有自己的具體值。在 C語言中,變量在使用前都需要提前聲明。 55qqq P t r 指針變量的引用 指針變量和變量一樣,都可以對數(shù)據(jù)進行操作,指針變量的操作主要是通過取地址運算符 amp。 例 2_3 變量與指向該變量的指針演示程序。 a [ 0 ]a P t rp( * p ) [ 0 ]( * p ) [ 1 ]( * p ) [ 3 ]( * p ) [ 2 ] 指針與數(shù)組 指針引用數(shù)組元素的應用舉例。 p=a。也就是說,指針數(shù)組中的元素,每一個都是一個指針變量。 函數(shù)指針與指針函數(shù) 函數(shù)指針與指針函數(shù)也是常常容易混淆的概念。 程 序 代 碼 段m a i nS u mf u n指 令 1指 令 2指 令 x? ? void main() { int a=3,b=5。 /*函數(shù)指針指向求和函數(shù) */ printf(%d+%d=%d\n,a,b,(*fun)(a,b))。 參數(shù)傳遞 在 C語言中,函數(shù)的參數(shù)傳遞的方式通常有兩種:一種是傳值的方式,另一種是傳地址的方式。調(diào)用函數(shù)后面括號里面的參數(shù)是實際參數(shù),被調(diào)用函數(shù)中的參數(shù)是形式參數(shù)。下面我們還以求兩個整數(shù)的較大者來說明參數(shù)傳地址調(diào)用方式的使用及傳遞情況。 b 4abamp。 bxy* x* y 傳地址調(diào)用 amp。 bxy* x* yamp。常用于處理非數(shù)值型數(shù)據(jù),在數(shù)據(jù)結(jié)構(gòu)中,使用非常廣泛,如鏈表、隊列、樹等。如果僅僅用 C語言中基本的數(shù)據(jù)類型,是無法進行描述的。 =39。指向結(jié)構(gòu)體變量的指針的值是結(jié)構(gòu)體變量的起始地址。但是與結(jié)構(gòu)體不同的是,聯(lián)合體的成員共享同一個存儲空間。 }。 內(nèi)存動態(tài)分配與釋放 內(nèi)存的動態(tài)分配需要使用 malloc函數(shù)、 free函數(shù)和sizeof運算符實現(xiàn)。如果分配空間失敗,則返回 NULL。 鏈表 鏈表是一種常用的數(shù)據(jù)結(jié)構(gòu)。本章首先對目前常用的 C語言開發(fā)環(huán)境 Turbo C VC 。使用遞歸只需要少量的程序就可以描述解決問題需要的重復計算過程,大大減少了程序的代碼量。其中包括函數(shù)的遞歸,指針,參數(shù)傳遞,結(jié)構(gòu)體,最后還介紹了鏈表及操作。自引用結(jié)構(gòu)體包含一個指針成員,該指針指向與結(jié)構(gòu)體一樣的類型。使用函數(shù) malloc時,最好要測試是否分配成功。 函數(shù) malloc的作用是在內(nèi)存中分配一個長度為 size的連續(xù)存儲空間。動態(tài)內(nèi)存分配在需要時進行分配,不需要時即釋放,不需要提前分配。 float y。指向結(jié)構(gòu)體的指針和指向變量和指向數(shù)組的指針的用法