這篇文章主要是介紹一些在復(fù)習(xí)C語(yǔ)言的過(guò)程中筆者個(gè)人認(rèn)為比較重點(diǎn)的地方,較好的掌握這些重點(diǎn)會(huì)使對(duì)C的運(yùn)用更加得心應(yīng)手。此外會(huì)包括一些細(xì)節(jié)、易錯(cuò)的地方。涉及的主要內(nèi)容包括:變量的作用域和存儲(chǔ)類別、函數(shù)、數(shù)組、字符串、指針、文件、鏈表等。一些最基本的概念在此就不多作解釋了,僅希望能有只言片語(yǔ)給同是C語(yǔ)言初學(xué)者的學(xué)習(xí)和上機(jī)過(guò)程提供一點(diǎn)點(diǎn)的幫助。
變量作用域和存儲(chǔ)類別:
了解了基本的變量類型后,我們要進(jìn)一步了解它的存儲(chǔ)類別和變量作用域問(wèn)題。
| 變量類別 | 子類別 |
| 局部變量 | 靜態(tài)變量(離開(kāi)函數(shù),變量值仍保留) |
| 自動(dòng)變量 | |
| 寄存器變量 | |
| 全局變量 | 靜態(tài)變量(只能在本文件中用) |
| 非靜態(tài)變量(允許其他文件使用) |
換一個(gè)角度
| 變量類別 | 子類別 |
| 靜態(tài)存儲(chǔ)變量 | 靜態(tài)局部變量(函數(shù)) |
| 靜態(tài)全局變量(本文件) | |
| 非靜態(tài)全局/外部變量(其他文件引用) | |
| 動(dòng)態(tài)存儲(chǔ)變量 | 自動(dòng)變量 |
| 寄存器變量 | |
| 形式參數(shù) |
extern型的存儲(chǔ)變量在處理多文件問(wèn)題時(shí)常能用到,在一個(gè)文件中定義extern型的變量即說(shuō)明這個(gè)變量用的是其他文件的。順便說(shuō)一下,筆者在做課設(shè)時(shí)遇到out of memory的錯(cuò)誤,于是改成做多文件,再把它include進(jìn)來(lái)(注意自己寫(xiě)的*.h要用“”不用<>),能起到一定的效用。static 型的在讀程序?qū)懡Y(jié)果的試題中是個(gè)考點(diǎn)。多數(shù)時(shí)候整個(gè)程序會(huì)出現(xiàn)多個(gè)定義的變量在不同的函數(shù)中,考查在不同位置同一變量的值是多少。主要是遵循一個(gè)原則,只要本函數(shù)內(nèi)沒(méi)有定義的變量就用全局變量(而不是main里的),全局變量和局部變量重名時(shí)局部變量起作用,當(dāng)然還要注意靜態(tài)與自動(dòng)變量的區(qū)別。
函數(shù):
對(duì)于函數(shù)最基本的理解是從那個(gè)叫main的單詞開(kāi)始的,一開(kāi)始總會(huì)覺(jué)得把語(yǔ)句一并寫(xiě)在main里不是挺好的么,為什么偏擇出去。其實(shí)這是因?yàn)閷?duì)函數(shù)還不夠熟練,否則函數(shù)的運(yùn)用會(huì)給我們編程帶來(lái)極大的便利。我們要知道函數(shù)的返回值類型,參數(shù)的類型,以及調(diào)用函數(shù)時(shí)的形式。事先的函數(shù)說(shuō)明也能起到一個(gè)提醒的好作用。所謂形參和實(shí)參,即在調(diào)用函數(shù)時(shí)寫(xiě)在括號(hào)里的就是實(shí)參,函數(shù)本身用的就是形參,在畫(huà)流程圖時(shí)用平行四邊形表示傳參。
函數(shù)的另一個(gè)應(yīng)用例子就是遞歸了,筆者開(kāi)始比較頭疼的問(wèn)題,反應(yīng)總是比較遲鈍,按照老師的方法,把遞歸的過(guò)程耐心準(zhǔn)確的逐級(jí)畫(huà)出來(lái),學(xué)習(xí)的效果還是比較好的,會(huì)覺(jué)得這種遞歸的運(yùn)用是挺巧的,事實(shí)上,著名的八皇后、漢諾塔等問(wèn)題都用到了遞歸。





