




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言部分語法精析內(nèi)內(nèi) 容容一、auto,static,register 分析二、if,switch,do,while,for 分析三、goto,void,extern,sizeof 分析四、const 和 volatile 分析五、struct 和 union 分析六、enum 和 typedef 分析第一篇第一篇auto,static,register 分析1、auto 分析 C語言中的變量可以有自己的屬性 在定義變量的時(shí)候可以加上“屬性”關(guān)鍵字 “屬性”關(guān)鍵字指明變量的特有意義 auto即C語言中局部變量的默認(rèn)屬性 編譯器默認(rèn)所有的局部變量都是auto的2、static 分析 stati
2、c關(guān)鍵字指明變量的“靜態(tài)”屬性 static關(guān)鍵同時(shí)具有“作用域限定符”的意義 static修飾的局部變量存儲(chǔ)在程序靜態(tài)區(qū) static的另一個(gè)意義是文件作用域標(biāo)示符 static修飾的全局變量作用域只是聲明的文件中 static修飾的函數(shù)作用域只是聲明的文件中3、register 分析 register關(guān)鍵字指明將變量存儲(chǔ)于寄存器中 register只是請(qǐng)求寄存器變量,但不一定請(qǐng)求成功 register變量的必須是CPU寄存器可以接受的值 不能用&運(yùn)算符獲取register變量的地址4、小結(jié) auto變量存儲(chǔ)在程序的棧中,默認(rèn)屬性 static變量存儲(chǔ)在程序靜態(tài)區(qū)中 register變量請(qǐng)求
3、存儲(chǔ)于CPU寄存器中第二篇第二篇if,switch,do,while,for 分析1、分支語句分析 - if if語句用于根據(jù)條件選擇執(zhí)行語句 else不能獨(dú)立存在且總是與它最近的if相匹配 else語句后可以接連其他if語句1、分支語句分析 - if if語句中零值比較的注意點(diǎn) bool型變量應(yīng)該直接出現(xiàn)于條件中,不要進(jìn)行比較 普通變量和0值比較時(shí),0值應(yīng)該出現(xiàn)在比較符號(hào)左邊 float型變量不能直接進(jìn)行0值比較,需要定義精度1、分支語句分析 - if2、分支語句分析 - switch switch語句對(duì)應(yīng)單個(gè)條件多個(gè)分值的情形 每個(gè)case語句分支必須要有break,否則會(huì)導(dǎo)致分支重疊 d
4、efault語句有必要加上,以處理特殊情況2、分支語句分析 - switch2、分支語句分析 - switch case語句中的值只能是整型或字符型 case語句排列順序分析 按字母或數(shù)字順序排列各條語句 正常情況放在前面,異常情況放在后面 default語句只用于處理真正的默認(rèn)情況3、分支語句小結(jié) 小結(jié) if語句實(shí)用于需要“按片”進(jìn)行判斷的情形中 switch語句實(shí)用于需要對(duì)各個(gè)離散值進(jìn)行分別判斷的情形中 if語句可以安全從功能上代替switch語句,但 switch語句無法代替if語句 switch語句對(duì)于多分支判斷的情形更加簡潔循環(huán)語句分析 循環(huán)語句的基本工作方式 通過條件表達(dá)式判定是否
5、執(zhí)行循環(huán)體 條件表達(dá)式遵循if語句表達(dá)式的原則 do,while,for的區(qū)別 do語句先執(zhí)行后判斷,循環(huán)體至少執(zhí)行一次 while語句先判斷后執(zhí)行,循環(huán)體可能不執(zhí)行 for語句先判斷后執(zhí)行,相比while更簡潔循環(huán)語句分析 break和continue的區(qū)別 break表示終止循環(huán)的執(zhí)行 continue表示終止本次循環(huán)體,進(jìn)入下次循環(huán)執(zhí)行 思考: switch能否用continue關(guān)鍵字?為什么?第三篇第三篇goto,void,extern,sizeof 分析1、遭人遺棄的goto 高手潛規(guī)則:禁用goto 項(xiàng)目經(jīng)驗(yàn):程序質(zhì)量與goto的出現(xiàn)次數(shù)成反比 最后的判決:將goto打入冷宮2、v
6、oid的意義 void修飾函數(shù)返回值和參數(shù) 如果函數(shù)沒有返回值,那么應(yīng)該將其聲明為void型 如果函數(shù)沒有參數(shù),應(yīng)該聲明其參數(shù)為void void修飾函數(shù)返回值和參數(shù)僅為了表示無 不存在void變量 C語言沒有定義void究竟是多大內(nèi)存的別名2、void的意義 void指針的意義 C語言規(guī)定只有相同類型的指針才可以相互賦值 void*指針作為左值用于“接收”任意類型的指針 void*指針作為右值賦值給其它指針時(shí)需要強(qiáng)制類型轉(zhuǎn)換2、void的意義3、extern中隱藏的意義 extern用于聲明外部定義的變量和函數(shù) extern用于“告訴”編譯器用C方式編譯 C+編譯器和一些變種C編譯器默認(rèn)會(huì)按
7、“自己”的方式編譯函數(shù)和變量,通過extern關(guān)鍵可以命令編譯器“以標(biāo)準(zhǔn)C方式進(jìn)行編譯”。4、為sizeof正名 sizeof是編譯器的內(nèi)置指示符,不是函數(shù) sizeof用于“計(jì)算”相應(yīng)實(shí)體所占的內(nèi)存大小 sizeof的值在編譯期就已經(jīng)確定第四篇第四篇const , volatile 分析1、const修飾變量 在C語言中const修飾的變量是只讀的,其本質(zhì)還是變量 const修飾的變量會(huì)在內(nèi)存占用空間 本質(zhì)上const只對(duì)編譯器有用,在運(yùn)行時(shí)無用2、const修飾數(shù)組 在C語言中const修飾的數(shù)組是只讀的 const修飾的數(shù)組空間不可被改變3、const修飾指針 const int* p;
8、 /p可變,p指向的內(nèi)容不可變 int const* p; /p可變,p指向的內(nèi)容不可變 int* const p; /p不可變,p指向的內(nèi)容可變 const int* const p; /p和p指向的內(nèi)容都不可變 口訣:左數(shù)右指 當(dāng)const出現(xiàn)在*號(hào)左邊時(shí)指針指向的數(shù)據(jù)為常量 當(dāng)const出現(xiàn)在*后右邊時(shí)指針本身為常量4、const修飾函數(shù)參數(shù)和返回值 const修飾函數(shù)參數(shù)表示在函數(shù)體內(nèi)不希望改變參數(shù)的值 const修飾函數(shù)返回值表示返回值不可改變,多用于返回指針的情形5、深藏不漏的volatile volatile可理解為“編譯器警告指示字” volatile用于告訴編譯器必須每次去內(nèi)
9、存中取變量值 volatile主要修飾可能被多個(gè)線程訪問的變量 volatile也可以修飾可能被未知因數(shù)更改的變量第五篇第五篇struct , union 分析1、思考 空結(jié)構(gòu)體占用多大內(nèi)存? 下面程序輸出什么?2、由結(jié)構(gòu)體產(chǎn)生柔性數(shù)組 柔性數(shù)組即數(shù)組大小待定的數(shù)組 C語言中結(jié)構(gòu)體的最后一個(gè)元素可以是大小未知的數(shù)組 C語言中可以由結(jié)構(gòu)體產(chǎn)生柔性數(shù)組3、union和struct的區(qū)別 struct中的每個(gè)域在內(nèi)存中都獨(dú)立分配空間 union只分配最大域的空間,所有域共享這個(gè)空間4、union使用的注意事項(xiàng) union的使用受系統(tǒng)大小端的影響第六篇第六篇enum , typedef 分析1、枚舉類型的使用方法 enum是一種自定義類型 enum默認(rèn)常量在前一個(gè)值的基礎(chǔ)上依次加1 enum類型的變量只能取定義時(shí)的離散值2、枚舉類型和#define的區(qū)別 #define宏常量只是簡單的進(jìn)行值替換,枚舉常量是真正意義上的常量 #define宏常量無法被調(diào)試,枚舉常量可以 #define宏常量無類型信息,枚舉常量是一種特定類型的常量3、typedef的意義面試中考官:你能說說typedef具體的意義嗎?應(yīng)聘者:typedef用于定義一種新的類型。 typedef用于給一個(gè)已經(jīng)存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理健康試題及答案大全
- 如何建立電商與農(nóng)業(yè)的協(xié)同發(fā)展機(jī)制試題及答案
- 基于SDN的工業(yè)互聯(lián)網(wǎng)平臺(tái)智能生產(chǎn)質(zhì)量優(yōu)化與集成報(bào)告
- 金融機(jī)構(gòu)2025年數(shù)字化轉(zhuǎn)型中的風(fēng)險(xiǎn)管理與內(nèi)部控制
- 家具行業(yè)理論基礎(chǔ)與實(shí)際應(yīng)用結(jié)合試題及答案
- 自主品牌電動(dòng)汽車的競爭優(yōu)勢(shì)試題及答案
- 文化素養(yǎng)與數(shù)學(xué)的試題及答案
- 物理考試復(fù)習(xí)的最終沖刺試題及答案
- 四川省瀘州市天立國際學(xué)校2025年高三第5次月考試題語文試題試卷含解析
- 建筑施工安全責(zé)任制落實(shí)的重要步驟試題及答案
- 羅沙司他治療腎性貧血中國專家共識(shí)
- 煙臺(tái)某公寓電氣設(shè)計(jì)畢業(yè)論文
- 2022全國高考真題化學(xué)匯編:專題 烴 鹵代烴
- 腦血管病介入診療并發(fā)癥及其處理課件
- 家校共育一年級(jí)家長會(huì)ppt
- 《微電子學(xué)概論》第八章-光電子器件課件
- 化學(xué)分析送樣單2
- 化工原理教案:6 吸收
- 【高考真題】2022年新高考浙江語文高考真題試卷(Word版含答案)
- 鋁鎂料倉等施工方案精品
- 目前最準(zhǔn)確的通達(dá)信纏論分筆公式
評(píng)論
0/150
提交評(píng)論