版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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語言中的變量可以有自己的屬性 在定義變量的時候可以加上“屬性”關(guān)鍵字 “屬性”關(guān)鍵字指明變量的特有意義 auto即C語言中局部變量的默認屬性 編譯器默認所有的局部變量都是auto的2、static 分析 stati
2、c關(guān)鍵字指明變量的“靜態(tài)”屬性 static關(guān)鍵同時具有“作用域限定符”的意義 static修飾的局部變量存儲在程序靜態(tài)區(qū) static的另一個意義是文件作用域標示符 static修飾的全局變量作用域只是聲明的文件中 static修飾的函數(shù)作用域只是聲明的文件中3、register 分析 register關(guān)鍵字指明將變量存儲于寄存器中 register只是請求寄存器變量,但不一定請求成功 register變量的必須是CPU寄存器可以接受的值 不能用&運算符獲取register變量的地址4、小結(jié) auto變量存儲在程序的棧中,默認屬性 static變量存儲在程序靜態(tài)區(qū)中 register變量請求
3、存儲于CPU寄存器中第二篇第二篇if,switch,do,while,for 分析1、分支語句分析 - if if語句用于根據(jù)條件選擇執(zhí)行語句 else不能獨立存在且總是與它最近的if相匹配 else語句后可以接連其他if語句1、分支語句分析 - if if語句中零值比較的注意點 bool型變量應(yīng)該直接出現(xiàn)于條件中,不要進行比較 普通變量和0值比較時,0值應(yīng)該出現(xiàn)在比較符號左邊 float型變量不能直接進行0值比較,需要定義精度1、分支語句分析 - if2、分支語句分析 - switch switch語句對應(yīng)單個條件多個分值的情形 每個case語句分支必須要有break,否則會導(dǎo)致分支重疊 d
4、efault語句有必要加上,以處理特殊情況2、分支語句分析 - switch2、分支語句分析 - switch case語句中的值只能是整型或字符型 case語句排列順序分析 按字母或數(shù)字順序排列各條語句 正常情況放在前面,異常情況放在后面 default語句只用于處理真正的默認情況3、分支語句小結(jié) 小結(jié) if語句實用于需要“按片”進行判斷的情形中 switch語句實用于需要對各個離散值進行分別判斷的情形中 if語句可以安全從功能上代替switch語句,但 switch語句無法代替if語句 switch語句對于多分支判斷的情形更加簡潔循環(huán)語句分析 循環(huán)語句的基本工作方式 通過條件表達式判定是否
5、執(zhí)行循環(huán)體 條件表達式遵循if語句表達式的原則 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)體,進入下次循環(huán)執(zhí)行 思考: switch能否用continue關(guān)鍵字?為什么?第三篇第三篇goto,void,extern,sizeof 分析1、遭人遺棄的goto 高手潛規(guī)則:禁用goto 項目經(jīng)驗:程序質(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*指針作為右值賦值給其它指針時需要強制類型轉(zhuǎn)換2、void的意義3、extern中隱藏的意義 extern用于聲明外部定義的變量和函數(shù) extern用于“告訴”編譯器用C方式編譯 C+編譯器和一些變種C編譯器默認會按
7、“自己”的方式編譯函數(shù)和變量,通過extern關(guān)鍵可以命令編譯器“以標準C方式進行編譯”。4、為sizeof正名 sizeof是編譯器的內(nèi)置指示符,不是函數(shù) sizeof用于“計算”相應(yīng)實體所占的內(nèi)存大小 sizeof的值在編譯期就已經(jīng)確定第四篇第四篇const , volatile 分析1、const修飾變量 在C語言中const修飾的變量是只讀的,其本質(zhì)還是變量 const修飾的變量會在內(nèi)存占用空間 本質(zhì)上const只對編譯器有用,在運行時無用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ù)右指 當const出現(xiàn)在*號左邊時指針指向的數(shù)據(jù)為常量 當const出現(xiàn)在*后右邊時指針本身為常量4、const修飾函數(shù)參數(shù)和返回值 const修飾函數(shù)參數(shù)表示在函數(shù)體內(nèi)不希望改變參數(shù)的值 const修飾函數(shù)返回值表示返回值不可改變,多用于返回指針的情形5、深藏不漏的volatile volatile可理解為“編譯器警告指示字” volatile用于告訴編譯器必須每次去內(nèi)
9、存中取變量值 volatile主要修飾可能被多個線程訪問的變量 volatile也可以修飾可能被未知因數(shù)更改的變量第五篇第五篇struct , union 分析1、思考 空結(jié)構(gòu)體占用多大內(nèi)存? 下面程序輸出什么?2、由結(jié)構(gòu)體產(chǎn)生柔性數(shù)組 柔性數(shù)組即數(shù)組大小待定的數(shù)組 C語言中結(jié)構(gòu)體的最后一個元素可以是大小未知的數(shù)組 C語言中可以由結(jié)構(gòu)體產(chǎn)生柔性數(shù)組3、union和struct的區(qū)別 struct中的每個域在內(nèi)存中都獨立分配空間 union只分配最大域的空間,所有域共享這個空間4、union使用的注意事項 union的使用受系統(tǒng)大小端的影響第六篇第六篇enum , typedef 分析1、枚舉類型的使用方法 enum是一種自定義類型 enum默認常量在前一個值的基礎(chǔ)上依次加1 enum類型的變量只能取定義時的離散值2、枚舉類型和#define的區(qū)別 #define宏常量只是簡單的進行值替換,枚舉常量是真正意義上的常量 #define宏常量無法被調(diào)試,枚舉常量可以 #define宏常量無類型信息,枚舉常量是一種特定類型的常量3、typedef的意義面試中考官:你能說說typedef具體的意義嗎?應(yīng)聘者:typedef用于定義一種新的類型。 typedef用于給一個已經(jīng)存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度醫(yī)院病房窗簾定制與配送合同范本4篇
- 二零二五版文化娛樂產(chǎn)業(yè)內(nèi)部股東股權(quán)置換合同4篇
- 2025年度工業(yè)自動化生產(chǎn)線安裝調(diào)試協(xié)議4篇
- 二零二五年度門窗行業(yè)智能制造解決方案合同3篇
- 二零二五版拌合料生產(chǎn)設(shè)備采購與維護合同4篇
- 二零二五年度精密車床采購合同(含原裝配件供應(yīng))2篇
- 二零二五年度高等教育學(xué)生生活體驗合作協(xié)議4篇
- 2025年度房地產(chǎn)開發(fā)項目預(yù)售款分期支付合同4篇
- 二零二五年度深基坑支護施工安全評價合同3篇
- 二零二五年度無機房電梯安裝與驗收合同3篇
- 鹽酸??颂婺崤R床療效、不良反應(yīng)與藥代動力學(xué)的相關(guān)性分析的開題報告
- 消防設(shè)施安全檢查表
- 組合結(jié)構(gòu)設(shè)計原理 第2版 課件 第6、7章 鋼-混凝土組合梁、鋼-混凝土組合剪力墻
- 建筑公司資質(zhì)常識培訓(xùn)課件
- 旅居管家策劃方案
- GB/T 26316-2023市場、民意和社會調(diào)查(包括洞察與數(shù)據(jù)分析)術(shù)語和服務(wù)要求
- 春節(jié)值班安全教育培訓(xùn)
- 帶狀皰疹護理查房
- 平衡計分卡-化戰(zhàn)略為行動
- 幼兒園小班下學(xué)期期末家長會PPT模板
- 幼兒教師干預(yù)幼兒同伴沖突的行為研究 論文
評論
0/150
提交評論