高等院校“十二五”核心課程輔導(dǎo)叢書:C語(yǔ)言答疑解惑與典型題解
定 價(jià):35 元
- 作者:吳婷 ,等 著
- 出版時(shí)間:2010/5/1
- ISBN:9787563522897
- 出 版 社:北京郵電大學(xué)出版社
- 中圖法分類:TP312C
- 頁(yè)碼:277
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
《C語(yǔ)言答疑解惑與典型題解》深入淺出、系統(tǒng)地全面地介紹了C語(yǔ)言的核心內(nèi)容。全書共分16章,內(nèi)容包括C語(yǔ)言基礎(chǔ)、算法和結(jié)構(gòu)化程序設(shè)計(jì)、數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、字符串、函數(shù)、指針、結(jié)構(gòu)體和共同體、預(yù)處理命令、位運(yùn)算和文件操作等。
《C語(yǔ)言答疑解惑與典型題解》以“答疑解惑+典型題解”為主線組織編寫,每一章都列舉了大量的題目(其中也包括各大高校的考研真題),并對(duì)其進(jìn)行了詳細(xì)分析評(píng)注,以便于幫助讀者掌握本章的重點(diǎn)及迅速回憶本章的內(nèi)容!禖語(yǔ)言答疑解惑與典型題解》結(jié)構(gòu)清晰、易教易學(xué)、實(shí)例豐富、學(xué)以致用、注重能力,對(duì)易混淆和歷年考題中較為關(guān)注的內(nèi)容進(jìn)行了重點(diǎn)提示和講解。
《C語(yǔ)言答疑解惑與典型題解》既可以作為學(xué)習(xí)C語(yǔ)言的輔導(dǎo)書,可也以作為復(fù)習(xí)考研、計(jì)算機(jī)等級(jí)考試的參考書,更可以作為各類培訓(xùn)班的培訓(xùn)教程。此外,《C語(yǔ)言答疑解惑與典型題解》也非常適于教師的C語(yǔ)言教學(xué)以及各種編程自學(xué)人員閱讀參考。
《C語(yǔ)言答疑解惑與典型題解》特點(diǎn) (1)結(jié)構(gòu)清晰、模式合理,《C語(yǔ)言答疑解惑與典型題解》基本按照正規(guī)教學(xué)課本(主流教材)的順序安排,不是對(duì)所有知識(shí)點(diǎn)詳細(xì)鋪陳,而是對(duì)核心知識(shí)點(diǎn)和常考題型做重點(diǎn)講解。每章設(shè)計(jì)了兩個(gè)板塊,分別是:答疑解惑與典型題解。 各內(nèi)容安排為: 答疑解惑:突出核心知識(shí),對(duì)重點(diǎn)、難點(diǎn)、易混淆的知識(shí)點(diǎn)進(jìn)行剖析與解釋,讓學(xué)生掌握問(wèn)題的本質(zhì)。包括對(duì)重要定理、定義和公式的剖析。 典型題解:精選出?碱}型與考研真題進(jìn)行解析,增強(qiáng)學(xué)生的解題能力、《C語(yǔ)言答疑解惑與典型題解》每一章都列舉了大量的題目,并對(duì)其進(jìn)行了詳細(xì)分析評(píng)注,以便于幫助讀者掌握本章的重點(diǎn)及迅速回憶本章的內(nèi)容。(題目來(lái)源:一是主流教材課后難題,二是課程考試試題,三是經(jīng)典好題,四是考研真題。) (2)針對(duì)性強(qiáng),實(shí)用性強(qiáng)。《C語(yǔ)言答疑解惑與典型題解》不是按照傳統(tǒng)輔導(dǎo)書那種“內(nèi)容簡(jiǎn)介-例題分析-習(xí)題”的模式編寫,而是在聽(tīng)取大量一線教師和學(xué)生們建議的基礎(chǔ)上,以突出針對(duì)性與實(shí)用性來(lái)安排內(nèi)容的。學(xué)生們最需要的是解決他們學(xué)習(xí)過(guò)程中的“疑惑”以及掌握解題方法!禖語(yǔ)言答疑解惑與典型題解》正是以“答疑解惑與典型題解”為中心,因而具有很強(qiáng)的針對(duì)性與實(shí)用性。 (3)《C語(yǔ)言答疑解惑與典型題解》重點(diǎn)定位在疑難解惑與解題方法上,開(kāi)拓解題思路,提高分析問(wèn)題的能力,不僅授人以“魚”,更在于授人以“漁”。 (4)《C語(yǔ)言答疑解惑與典型題解》聘請(qǐng)執(zhí)教多年且有較高學(xué)術(shù)造詣的名師編寫,質(zhì)量高,內(nèi)容清晰。
本書是為讀者學(xué)習(xí)C語(yǔ)言而編寫的教學(xué)輔導(dǎo)書,可幫助讀者復(fù)習(xí)課程的基本內(nèi)容,檢驗(yàn)各種算法的掌握程度,培養(yǎng)和提高用C語(yǔ)言解決實(shí)際問(wèn)題的能力,力爭(zhēng)使讀者在學(xué)完本書之后,在編程和解決實(shí)際問(wèn)題方面都達(dá)到一個(gè)新的高度。
1.本書閱讀指南
本書對(duì)c語(yǔ)言知識(shí)點(diǎn)的常見(jiàn)問(wèn)題進(jìn)行了講解,同時(shí)分析了近幾年的考研題目,并給出了詳實(shí)的參考答案,讀者可以充分地了解各個(gè)學(xué)?佳蓄}目的難度,查缺補(bǔ)漏,有針對(duì)性地提高自己的水平。本書共分16章。
第1章主要講解C語(yǔ)言的基本概念和入門。
第2章主要講解C語(yǔ)言的算法和結(jié)構(gòu)化程序設(shè)計(jì)。
第3章主要講解C語(yǔ)言的數(shù)據(jù)類型。
第4章主要講解C語(yǔ)言的運(yùn)算符和表達(dá)式。
第5章主要講解C語(yǔ)言順序結(jié)構(gòu)方面的知識(shí)。
第6章主要講解C語(yǔ)言選擇結(jié)構(gòu)方面的知識(shí)。
第7章主要講解C語(yǔ)言循環(huán)結(jié)構(gòu)方面的知識(shí)。
第8章主要講解C語(yǔ)言數(shù)組方面的知識(shí)。
第9章主要講解C語(yǔ)言字符串方面的知識(shí)。
第10章主要講解C語(yǔ)言的函數(shù),函數(shù)是C語(yǔ)言的核心所在,本章對(duì)函數(shù)的定義用法等進(jìn)行了詳細(xì)講解。
第11章主要講解C語(yǔ)言指針?lè)矫娴闹R(shí)。
第12章主要講解C語(yǔ)言的結(jié)構(gòu)體和共同體。
第13章主要講解C語(yǔ)言的預(yù)處理命令。
第14章主要講解C語(yǔ)言位運(yùn)算方面的知識(shí)。
第15章主要講解C語(yǔ)言的文件操作。
第16章提供了一套測(cè)試題和一套考研真題,為讀者提供一個(gè)自我分析解決問(wèn)題的過(guò)程。
2.本書的特色與優(yōu)點(diǎn)
(1)結(jié)構(gòu)清晰,知識(shí)完整。本書系統(tǒng)性強(qiáng),依據(jù)高校教學(xué)大綱組織內(nèi)容,同時(shí)覆蓋最新版本的所有知識(shí)點(diǎn),并將實(shí)際經(jīng)驗(yàn)融人基本理論之中。
(2)內(nèi)容詳實(shí),解答完整。本書涵蓋近幾年各大高校的大量題目,示例眾多,步驟明確,講解細(xì)致,讀者不但可以利用題海戰(zhàn)術(shù)完善自己的弱項(xiàng),更可以有針對(duì)性地了解某些重點(diǎn)院校的近年考研題目及解題思路。
(3)學(xué)以致用,注重能力。一些例題后面有與其相聯(lián)系的知識(shí)點(diǎn)詳解,使讀者在解答問(wèn)題的同時(shí),對(duì)基礎(chǔ)理論得到更深刻的理解。
(4)重點(diǎn)突出,實(shí)用性強(qiáng)。突出核心知識(shí),對(duì)重點(diǎn)、難點(diǎn)、易混淆知識(shí)點(diǎn)進(jìn)行剖析與解釋,通過(guò)對(duì)試題的分析提高讀者解決實(shí)際問(wèn)題的能力。
第1章 C語(yǔ)育基礎(chǔ)
1.1 答疑解惑
1.1.1 C語(yǔ)言是如何構(gòu)成的?
1.1.2 C程序是如何執(zhí)行的?
1.1.3 C程序是如何編譯連接的?
1.1.4 C程序中如何使用注釋?
1.2 典型題解
題型1C程序構(gòu)成
題型2C程序編譯連接
題型3注釋
第2章 算法和結(jié)構(gòu)化程序設(shè)計(jì)
2.1 答疑解惑
2.1.1 什么是程序?
2.1.2 什么是算法?
2.1.3 如何評(píng)價(jià)、選擇算法?
2.1.4 如何設(shè)計(jì)算法?
2.1.5 什么是結(jié)構(gòu)化程序設(shè)計(jì)?
2.1.6 如何用圖形描述算法?
2.2 典型題解
題型1算法的特征
題型2結(jié)構(gòu)化程序設(shè)計(jì)
題型3算法的圖形化描述
第3章 數(shù)據(jù)類型
3.1 答疑解惑
3.1.1 C語(yǔ)言中有哪些數(shù)據(jù)類型?
3.1.2 什么是常量?什么是變量?
3.1.3 什么是標(biāo)識(shí)符?C語(yǔ)言中有哪些標(biāo)識(shí)符?
3.1.4 如何定義自己的標(biāo)識(shí)符?
3.1.5 如何命名出“見(jiàn)名識(shí)意”的標(biāo)識(shí)符?
3.1.6 整型數(shù)據(jù)可以表示哪些數(shù)?
3.1.7 數(shù)489L.和489有何不同?
3.1.8 數(shù)123、0123和0X123有何不同?
3.1.9 實(shí)型數(shù)據(jù)可以表示哪些數(shù)?
3.1.10 數(shù)123.4 、12.3 4E1和O.1 234e3有何不同?
3.1.11 為什么下面程序中y的值沒(méi)有增加?
3.1.12 為什么下面程序的輸出不是678997
3.1.13 字符型變量中存放了什么?
3.1.14 字符型數(shù)據(jù)與整型數(shù)據(jù)有什么聯(lián)系?
3.1.15 ‘a(chǎn)’和“a”有何不同?
3.2 典型題解
題型1標(biāo)識(shí)符定義
題型2數(shù)據(jù)類型基本概念
題型3變量和常量基本概念
題型4整型數(shù)據(jù)
題型5整型數(shù)據(jù)的各進(jìn)制表示及
轉(zhuǎn)換
題型6實(shí)型數(shù)據(jù)
題型7字符型數(shù)據(jù)
第4章 運(yùn)算符與表達(dá)式
4.1 答疑解惑
4.1.1 C語(yǔ)言中有哪些運(yùn)算符?
4.1.2 1/2和1/2.0的計(jì)算結(jié)果一樣嗎?
4.1.3 -10%3和10%-3的計(jì)算結(jié)果一樣嗎?可以4.5%2嗎?
4.1.4 表達(dá)式x=x中,兩個(gè)x的含義是否相同?
4.1.5 x+一2和x=x+2意義相同嗎?
4.1.6 z一(x一16)*(y一4)如何執(zhí)行?
4.1.7 b-a++與b一++a有何不同?
4.1.8 為什么2++,(a+b)一一都是不合法的?
4.1.9 b——a++如何執(zhí)行?
4.1.1 0若inta-10,執(zhí)行b-(3*5,a+4)后,a、b的值分別為多少?
4.1.1 15+3.1 4-5.1 23456*‘a(chǎn)’-‘b’的計(jì)算結(jié)果是什么類型的數(shù)據(jù)?
4.1.1 2為什么下面程序的運(yùn)行結(jié)果是1而非0?
4.1.1 3a+++b如何計(jì)算?
4.2 典型題解
題型1算術(shù)運(yùn)算
題型2賦值運(yùn)算
題型3左值的概念
題型4自增、自減運(yùn)算
題型5逗號(hào)運(yùn)算
題型6類型轉(zhuǎn)換
題型7運(yùn)算符優(yōu)先級(jí)和結(jié)合性
第5章 頗序結(jié)構(gòu)
5.1 答疑解惑
5.1.1 c=‘a(chǎn)’和c-‘a(chǎn)’;有什么區(qū)別?
5.1.2 inta;是語(yǔ)句嗎?
5.1.3 空語(yǔ)句什么也不做,為什么還要使用?
5.1.4 為什么下面程序的輸出是1而不是127
5.1.5 能否按照自己的要求輸出數(shù)據(jù)?
5.1.6 為什么下面的程序無(wú)法執(zhí)行?
5.1.7 按照下面的程序能否輸入“2a”?
5.2 典型題解
題型1語(yǔ)句基本概念
題型2字符輸入/輸出
題型3格式化輸入
題型4格式化輸出
題型5綜合應(yīng)用
第6章 選擇結(jié)構(gòu)
6.1 答疑解惑
6.1.1 什么是“真”,什么是“假”?
6.1.2 為什么下列程序輸出的是“一一”而不是“!一”?
6.1.3 浮點(diǎn)數(shù)之間的比較可靠嗎?
6.1.4 C語(yǔ)言中有哪些邏輯運(yùn)算符?運(yùn)算規(guī)則是什么?
6.1.5 表達(dá)式ab)?a,b后max的值是多少?
6.1.8 if與else如何配對(duì)?
6.1.9 if語(yǔ)句和switch語(yǔ)句該如何選擇?
6.1.1 0為什么下面程序的輸出不是3?
6.1.1 1switch語(yǔ)句中一定要使用default語(yǔ)句嗎?
6.2 典型題解
題型1關(guān)系運(yùn)算
題型2邏輯運(yùn)算
題型3條件運(yùn)算
題型4if語(yǔ)句
題型5SWItch語(yǔ)句
第7章 循環(huán)結(jié)構(gòu)
7.1 答疑解惑
7.1.1 下面的程序?yàn)槭裁村e(cuò)誤?
7.1.2 為什么下面兩個(gè)程序的執(zhí)行結(jié)果不同?
7.1.3 為什么下列程序的運(yùn)行結(jié)果不是67
7.1.4 for語(yǔ)句中的表達(dá)式能否省略?
7.1.5 該選擇while循環(huán)還是for循環(huán)?
7.1.6 循環(huán)中能否包含循環(huán)?
7.1.7 break語(yǔ)句和continue語(yǔ)句的區(qū)別是什么?
7.2 典型題解
題型1for循環(huán)語(yǔ)句
題型2dowhile、while循環(huán)語(yǔ)句
題型3break、continue語(yǔ)句
題型4綜合應(yīng)用
第8章 數(shù)組
8.1 答疑解惑
8.1.1 什么是數(shù)組?數(shù)組在內(nèi)存中如何存儲(chǔ)?
8.1.2 inta[10];a++;是否正確?
8.1.3 以下對(duì)數(shù)組的聲明是否正確?
8.1.4 下面的程序在編譯時(shí)是否會(huì)報(bào)錯(cuò)?
8.1.5 以下對(duì)二維數(shù)組的聲明是否正確?
8.2 典型題解
題型1一維數(shù)組的定義和初始化
題型2一維數(shù)組的引用
題型3一維數(shù)組元素的移動(dòng)
題型4一維數(shù)組的排序
題型5數(shù)組元素的查找和刪除
題型6多維數(shù)組的定義和初始化
題型7多維數(shù)組的引用
題型8二維數(shù)組的排序
題型9將二維數(shù)組轉(zhuǎn)化為一維數(shù)組
第9章 字符串
9.1 答疑解惑
9.1.1 C語(yǔ)言中如何存儲(chǔ)字符串?
9.1.2 定義char’s[]-"well"-chart口={‘w’,‘e’,‘l’,‘l’};中,s與t相同嗎?
9.1.3 如何從鍵盤輸入“。HelloWorld"并賦值給字符數(shù)組.應(yīng)調(diào)用什么函數(shù)?
9.1.4 strlen與sizeof有什么區(qū)別?
9.1.5 如何使用strcpy函數(shù)?
9.1.6 如何比較兩個(gè)字符串?if(strl==str2)的寫法是否正確?
9.1.7 如何使用strcat函數(shù)?
9.2 典型題解
題型1字符串的初始化
題型2字符串的長(zhǎng)度
題型3字符串的輸入
題型4特定字符的大小寫轉(zhuǎn)換
題型5字符串與整數(shù)的轉(zhuǎn)換
題型6指定字符的查找和刪除
題型7字符串的比較
題型8字符串的排序
題型9字符子串查找
題型10字符子串的移動(dòng)
題型11字符串的復(fù)制
題型12字符串的連接
第10章 函數(shù)
10.1 答疑解惑
10.1.1 為什么需要函數(shù)?
10.1.2 如何定義和使用函數(shù)?
10.1.3 為什么要進(jìn)行函數(shù)的聲明?
10.1.4 函數(shù)調(diào)用時(shí),數(shù)據(jù)如何傳遞?
10.1.5 return語(yǔ)句和exit()函數(shù)調(diào)用有什么區(qū)別?
10.1.6 函數(shù)的嵌套調(diào)用是如何進(jìn)行的?
10.1.7 什么時(shí)候使用遞歸?
10.1.8 函數(shù)的遞歸調(diào)用是如何進(jìn)行的?
10.1.9 什么是全局變量和局部變量?
10.1.1 0C語(yǔ)言中的局部變量有哪些存儲(chǔ)類別?
10.1.1 1不同類型的變量存儲(chǔ)方式是否相同?
10.1.1 2C語(yǔ)言中的函數(shù)有哪些存儲(chǔ)類別?
10.2 典型題解
題型1函數(shù)的基本概念
題型2形參和實(shí)參
題型3函數(shù)返回值
題型4函數(shù)的基本調(diào)用
題型5數(shù)組作為函數(shù)參數(shù)
題型6函數(shù)的嵌套調(diào)用
題型7函數(shù)的遞歸調(diào)用
題型8全局變量和局部變量
題型9變量的存儲(chǔ)類別及生命周期
第11章 指針
11.1 答疑解惑
11.1.1 什么是內(nèi)存單元地址?什么是內(nèi)存單元內(nèi)容?
11.1.2 指針的地址和指針中存放的地址有什么區(qū)別?
11.1.3 指針可以指向指針嗎?
11.1.4 指向不同類型的指針,在內(nèi)存中所占空間相同嗎?
11.1.5 指針一定要初始化嗎?
11.1.6 如何對(duì)指針進(jìn)行初始化?
11.1.7 指針可以做運(yùn)算嗎?
11.1.8 為什么要?jiǎng)討B(tài)分配內(nèi)存空間?如何分配?
11.1.9 如何通過(guò)指針引用一維數(shù)組元素?
11.1.1 0指針和字符數(shù)組都可以操作字符串,兩者有什么區(qū)別?
11.1.1 1如何通過(guò)指針引用二維數(shù)組元素?
11.1.1 2函數(shù)指針和指針函數(shù)有什么區(qū)別?
11.1.1 3指針數(shù)組和數(shù)組指針有什么區(qū)別?
11.2 典型題解
題型1指針的基本概念
題型2指針的運(yùn)算
題型3指針作為函數(shù)參數(shù)
題型4指向函數(shù)的指針
題型5指向一維數(shù)組的指針
題型6字符串與指針
題型7指向二維數(shù)組的指針
題型8指針數(shù)組
題型9命令行參數(shù)
題型10指向指針的指針
題型11指向結(jié)構(gòu)體、共同體變量
的指針
題型12綜合應(yīng)用
第12章 結(jié)構(gòu)體和共同體
12.1 答疑解惑
12.1.1 為什么要使用typedef?它定義了新類型嗎?
12.1.2 typedef與define有什么區(qū)別?
12.1.3 為什么要使用結(jié)構(gòu)體?
12.1.4 為什么下面的程序在編譯時(shí)會(huì)報(bào)錯(cuò)?
12.1.5 如何引用結(jié)構(gòu)體的成員?
12.1.6 如何用結(jié)構(gòu)體生成鏈表?
12.1.7 如何用在鏈表中插入節(jié)點(diǎn)?
12.1.8 如何用在鏈表中刪除節(jié)點(diǎn)?
12.1.9 為什么要使用共同體?它有
什么特點(diǎn)?
12.2 典型題解
題型1用戶自定義類型
題型2結(jié)構(gòu)體的定義和元素引用
題型3結(jié)構(gòu)體數(shù)組
題型4鏈表基本概念
題型5鏈表的插入
題型6鏈表中的數(shù)據(jù)查找和修改
題型7鏈表的刪除
題型8鏈表的排序
題型9共同體
題型10結(jié)構(gòu)體與共同體綜合運(yùn)用
第13章 預(yù)處理命令
13.1 答疑解惑
13.1.1 什么是預(yù)處理?
13.1.2 什么是宏定義?
13.1.3 宏定義有哪些特點(diǎn)?
13.1.4 下面程序的輸出是什么?
13.1.5 帶參數(shù)的宏和函數(shù)有什么區(qū)別?
13.1.6 為什么要使用頭文件,如何寫自己的頭文件?
13.1.7 如何包含文件?
13.1.8 可以包含多個(gè)文件嗎?
13.1.9 如何避免文件的重復(fù)包含?
13.2 典型題解
題型1預(yù)處理基本概念
題型2宏替換基本概念
題型3帶參數(shù)的宏替換
題型4文件包含
題型5條件編譯
第14章 位運(yùn)算
14.1 答疑解惑
14.1.1 位(bit)、字節(jié)(byte)和字(word)有什么區(qū)別?
14.1.2 數(shù)在計(jì)算機(jī)中是如何存儲(chǔ)的?
14.1.3 C語(yǔ)言中有哪些位運(yùn)算符?
14.1.4 六種位運(yùn)算符的運(yùn)算規(guī)則分別是什么?
14.1.5 運(yùn)算符&和運(yùn)算符&&有什么區(qū)別?
14.1.6 如何實(shí)現(xiàn)將字符a的“高4位清0,低4位保留”?
14.1.7 如何實(shí)現(xiàn)將字符a的“高4位置1,低4位保留”?
14.1.8 如何實(shí)現(xiàn)將字符a的“高4位翻轉(zhuǎn),低4位保留”?
14.1.9 如何交換兩個(gè)數(shù),但不使用臨時(shí)變量?
14.1.1 0左移右移運(yùn)算與乘除運(yùn)算有什么關(guān)系?
14.1.1 1位運(yùn)算符的優(yōu)先級(jí)和結(jié)合性是怎樣的?
14.1.1 2兩個(gè)長(zhǎng)度不同的數(shù)如何進(jìn)行位運(yùn)算?
14.2 典型題解
題型1按邏輯運(yùn)算
題型2按位移動(dòng)運(yùn)算
第15章 文件操作
15.1 答疑解惑
15.1 I1數(shù)據(jù)在文件中如何存儲(chǔ)?
15.1.2 什么是文件指針?什么是文件位置指針?
15.1.3 stdin、stout、stderr是什么?
15.1.4 如何訪問(wèn)文件?
15.1.5 使用文件的一般操作步驟是怎樣的?
15.1.6 如何打開(kāi)文件?
15.1.7 為什么下面的操作無(wú)法打開(kāi)文件?
15.1.8 文件使用完畢后為什么必須關(guān)閉文件?
15.1.9 如何將單個(gè)字符存人文件中?
15.1.1 0如何將字符串存入文件中?
15.1.1 1如何將結(jié)構(gòu)體存人文件中?
15.1.1 2scanf和fscanf、printf和fprointf有何區(qū)別?
15.1.1 3為什么要進(jìn)行文件定位?如何進(jìn)行文件定位?
15.1.1 4標(biāo)識(shí)符EOF能否作為二進(jìn)制文件的結(jié)束標(biāo)志?
15.2 典型題解
題型1文件基本概念
題型2文件的打開(kāi)和關(guān)閉
題型3文件檢測(cè)
題型4文件字符輸入/輸出
題型5文件字符串輸入/輸出
題型6文件格式化輸入/輸出
題型7文件的數(shù)據(jù)塊輸入/輸出
題型8文件的定位操作
題型9綜合應(yīng)用
第16章 課程測(cè)試與考研真題
16.1 課程測(cè)試
16.2 考研真題
16.3 課程測(cè)試解析
16.4 考研真題解析
10.1.10C語(yǔ)言中的局部變量有哪些存儲(chǔ)類別?
按照生命周期的不同,局部變量可以分為4種:自動(dòng)型(auto),靜態(tài)型(static),寄存器型(register),外部型(extern)。
(1)自動(dòng)型(auto)
由關(guān)鍵字auto聲明的變量稱為自動(dòng)變量。在定義局部變量時(shí),如果沒(méi)有指定存儲(chǔ)類,系統(tǒng)將默認(rèn)為auto類。它在定義時(shí)被分配內(nèi)存,當(dāng)函數(shù)調(diào)用結(jié)束時(shí),系統(tǒng)回收變量所占內(nèi)存。所以,auto型變量的作用域是從定義的位置起,到函數(shù)體結(jié)束處止。
(2)靜態(tài)型(static)
用關(guān)鍵字static聲明的變量稱為靜態(tài)變量,它的生存期是從程序開(kāi)始執(zhí)行到程序運(yùn)行結(jié)束。如果函數(shù)中的局部變量被聲明為static類,函數(shù)調(diào)用結(jié)束后變量將保留原值,而不是消失(因?yàn)檎加玫膬?nèi)存單元并未被釋放),在下一次函數(shù)調(diào)用時(shí)該變量的值仍為存儲(chǔ)單元中的值。如果沒(méi)有被顯式地賦初值,系統(tǒng)將自動(dòng)在編譯時(shí)為static變量賦O值。
(3)寄存器型(register)
用關(guān)鍵字register聲明的變量稱為寄存器變量,此類變量的值將被存放在CPU寄存器中,而不是內(nèi)存中。程序運(yùn)行時(shí),訪問(wèn)寄存器的速度要遠(yuǎn)遠(yuǎn)高于訪問(wèn)內(nèi)存的速度。因此,當(dāng)程序運(yùn)行效率要求較高時(shí),可以將頻繁使用的變量聲明為寄存器類型。
注意,只有局部atuo變量和函數(shù)的形參可以被聲明為寄存器變量。并且無(wú)論寄存器變量是否真的放在寄存器中,都不能對(duì)其進(jìn)行求地址運(yùn)算。
(4)外部型(extern)
上文提到,全局變量的作用域是從變量定義到程序結(jié)束。因此,當(dāng)全局變量定義在后,函數(shù)引用在前時(shí),需要在函數(shù)中用extern對(duì)該變量進(jìn)行聲明,這樣才能夠引用該變量。因此,extern聲明實(shí)質(zhì)上是擴(kuò)展了全局變量的作用域。