關(guān)于我們
書單推薦
新書推薦
|
零基礎(chǔ)學(xué)C語言(第4版)
本書分為“C語言基礎(chǔ)”“一窺C語言門徑”“C語言進(jìn)階”“C語言程序設(shè)計實例與面試題解析”四篇,系統(tǒng)全面地介紹了C語言各個方面的知識,從*簡單的“Hello World”程序?qū)懫穑鸩缴罨、?xì)化,第壹篇。書中對每個知識和技術(shù)要點都給出了翔實的示例及代碼分析。和其他書籍中羅列代碼的做法不同,本書中的代碼力求短小精悍,直擊要點,避免了細(xì)枝末節(jié)對讀者思維的干擾。在講解知識點的同時輔以筆者多年的C語言編程經(jīng)驗解析,可加深讀者的理解。
前言
第一篇 C語言基礎(chǔ) 第1章 踏上征程前的思想動員1 1.1 為什么選擇C語言1 1.2 如何學(xué)好C語言3 1.3 語言概述3 1.3.1 什么是語言3 1.3.2 什么是機(jī)器語言3 1.3.3 什么是匯編語言4 1.3.4 面向過程的語言5 1.3.5 什么是C語言5 1.4 程序的開發(fā)周期5 1.4.1 編輯C源代碼6 1.4.2 編譯C源代碼6 1.4.3 連接目標(biāo)文件7 1.4.4 編譯連接過程示例7 1.4.5 運(yùn)行程序9 1.5 C、C++、VC++的區(qū)別和開發(fā)環(huán)境9 1.6 小結(jié)11 1.7 習(xí)題11 第2章 跟我寫Hello World13 2.1 了解需求才能創(chuàng)建程序13 2.2 認(rèn)識Code::Blocks開發(fā)環(huán)境13 2.2.1 為什么選擇Code::Blocks14 2.2.2 啟動Code::Blocks14 2.2.3 新建Hello World項目14 2.2.4 定義新項目15 2.2.5 添加源代碼到項目16 2.2.6 調(diào)試器設(shè)置16 2.2.7 開始編輯代碼17 2.3 編譯運(yùn)行18 2.4 調(diào)試排錯(debug)19 2.4.1 debug的由來19 2.4.2 設(shè)置斷點20 2.4.3 調(diào)試運(yùn)行20 2.5 第一個程序容易出現(xiàn)的錯誤21 2.5.1 包含命令include21 2.5.2 關(guān)鍵字main22 2.5.3 表示代碼行結(jié)束的分號22 2.6 小結(jié)22 2.7 習(xí)題22 第3章 分解Hello World——最簡單C程序的組成24 3.1 C程序的構(gòu)成24 3.2 C程序的注釋25 3.3 C程序必須有的main函數(shù)26 3.4 調(diào)用函數(shù)在屏幕上顯示文字27 3.5 #include預(yù)處理器指示符28 3.5.1 函數(shù)聲明及其作用28 3.5.2 試驗尋找#include的作用29 3.5.3 #include的作用30 3.6 計算1+1的程序?qū)嵗?1 3.7 數(shù)據(jù)從哪里來,又到哪里去——變量32 3.7.1 變量在內(nèi)存中的表現(xiàn)形式32 3.7.2 編譯器使用變量符號表32 3.7.3 變量及其使用33 3.8 自己設(shè)計C函數(shù)35 3.8.1 在main函數(shù)中計算3個整數(shù)的平均數(shù)35 3.8.2 在main函數(shù)中分3次計算3個整數(shù)的平均數(shù)36 3.8.3 自編函數(shù)實現(xiàn)計算3個整數(shù)的平均數(shù)36 3.8.4 如何自編寫函數(shù)37 3.8.5 觀察總結(jié)函數(shù)聲明和函數(shù)定義的意義38 3.9 語句構(gòu)成程序39 3.10 優(yōu)秀程序員的代碼風(fēng)格40 3.11 小結(jié)40 3.12 習(xí)題41 第4章 常量、變量及數(shù)據(jù)類型42 4.1 計算機(jī)是如何表示數(shù)據(jù)的42 4.1.1 二進(jìn)制、八進(jìn)制、十六進(jìn)制42 4.1.2 表示數(shù)據(jù)的字節(jié)和位44 4.1.3 內(nèi)存是存儲數(shù)據(jù)的房間45 4.2 數(shù)據(jù)類型46 4.2.1 整數(shù)類型46 4.2.2 整數(shù)的有符號和無符號48 4.2.3 實數(shù)類型50 4.2.4 字符類型50 4.2.5 數(shù)據(jù)類型總結(jié)51 4.3 常量51 4.3.1 直接常量和符號常量52 4.3.2 符號常量的優(yōu)點53 4.3.3 直接常量的書寫格式54 4.3.4 轉(zhuǎn)義字符55 4.3.5 字符串57 4.4 變量58 4.4.1 變量的聲明58 4.4.2 變量聲明的意義59 4.4.3 標(biāo)識符和關(guān)鍵字60 4.4.4 變量在內(nèi)存中占據(jù)的空間和變量的值62 4.4.5 為變量賦初值64 4.4.6 變量使用時常見的錯誤65 4.5 幾個與變量相關(guān)的經(jīng)典算法66 4.5.1 累加和累乘66 4.5.2 交換兩個變量的值68 4.6 小結(jié)69 4.7 習(xí)題69 第5章 用屏幕和鍵盤交互——簡單的輸出和輸入71 5.1 輸入—處理—輸出:這就是程序71 5.2 向屏幕輸出——printf()函數(shù)詳解72 5.2.1 printf()函數(shù)的一般形式72 5.2.2 printf()函數(shù)的輸出原理73 5.2.3 格式控制字符串的一般形式74 5.2.4 輸出帶符號的整數(shù)%d75 5.2.5 設(shè)置最小寬度的輸出75 5.2.6 長整型輸出%ld76 5.2.7 輸出八進(jìn)制形式76 5.2.8 輸出十六進(jìn)制的形式77 5.2.9 輸出十進(jìn)制的unsigned型數(shù)據(jù)77 5.2.10 輸出字符78 5.2.11 輸出字符串%s79 5.2.12 輸出實型數(shù)據(jù)%f81 5.2.13 輸出指數(shù)形式的實數(shù)82 5.2.14 自動選擇%f或者%e形式輸出%g83 5.2.15 printf()函數(shù)的幾點說明83 5.3 字符輸出putchar()和字符串輸出puts()84 5.3.1 字符輸出函數(shù)84 5.3.2 字符串輸出函數(shù)85 5.4 接收鍵盤輸入——scanf()函數(shù)詳解86 5.4.1 scanf()函數(shù)的一般形式86 5.4.2 scanf()函數(shù)的輸入原理87 5.4.3 多數(shù)據(jù)輸入分隔規(guī)則89 5.4.4 控制輸入的格式字符90 5.4.5 scanf()函數(shù)的使用說明91 5.4.6 使用scanf()函數(shù)的注意事項93 5.5 字符輸入函數(shù)getchar()95 5.6 輸入和輸出程序舉例96 5.7 小結(jié)98 5.8 習(xí)題99 第6章 程序的基本構(gòu)成——運(yùn)算符和表達(dá)式100 6.1 認(rèn)識C中的運(yùn)算符和表達(dá)式100 6.1.1 運(yùn)算符和表達(dá)式100 6.1.2 操作數(shù)、運(yùn)算符和表達(dá)式101 6.1.3 C運(yùn)算符簡介102 6.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式102 6.2.1 基本的算術(shù)運(yùn)算符103 6.2.2 ++自增、--自減運(yùn)算符104 6.2.3 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級及結(jié)合性106 6.3 逗號運(yùn)算符和逗號表達(dá)式107 6.3.1 逗號表達(dá)式的一般形式107 6.3.2 逗號表達(dá)式的優(yōu)先級和結(jié)合性108 6.4 關(guān)系運(yùn)算符和關(guān)系表達(dá)式109 6.4.1 關(guān)系運(yùn)算符的種類109 6.4.2 關(guān)系表達(dá)式的一般形式109 6.5 邏輯運(yùn)算符和邏輯表達(dá)式110 6.5.1 邏輯運(yùn)算符111 6.5.2 邏輯真值表111 6.6 賦值運(yùn)算符和賦值表達(dá)式112 6.6.1 賦值表達(dá)式112 6.6.2 復(fù)合運(yùn)算符113 6.7 強(qiáng)制類型轉(zhuǎn)換和自動類型轉(zhuǎn)換113 6.7.1 強(qiáng)制類型轉(zhuǎn)換113 6.7.2 自動類型轉(zhuǎn)換115 6.8 運(yùn)算符的優(yōu)先級116 6.8.1 優(yōu)先級、結(jié)合性匯總116 6.8.2 sizeof運(yùn)算117 6.9 取地址運(yùn)算符117 6.10 小結(jié)118 6.11 習(xí)題118 第7章 程序的最小獨(dú)立單元——語句120 7.1 5種語句類型120 7.1.1 表達(dá)式語句120 7.1.2 函數(shù)調(diào)用語句122 7.1.3 空語句122 7.1.4 復(fù)合語句(塊語句)122 7.1.5 流程控制語句123 7.2 結(jié)構(gòu)化程序設(shè)計123 7.2.1 什么是算法123 7.2.2 算法的表示123 7.2.3 算法的偽代碼表示124 7.2.4 算法的流程圖表示124 7.2.5 3種控制結(jié)構(gòu)124 7.2.6 算法示例125 7.3 小結(jié)125 7.4 習(xí)題126 第8章 條件判斷——分支結(jié)構(gòu)127 8.1 if語句127 8.1.1 判斷表達(dá)式127 8.1.2 花括號和if結(jié)構(gòu)體128 8.2 if...else結(jié)構(gòu)129 8.2.1 關(guān)鍵在else129 8.2.2 if...else結(jié)構(gòu)體130 8.3 多分支語句和分支語句嵌套131 8.3.1 多分支131 8.3.2 多分支if結(jié)構(gòu)133 8.3.3 分支語句嵌套134 8.4 switch結(jié)構(gòu)135 8.4.1 一般形式135 8.4.2 為什么叫開關(guān)語句137 8.4.3 default語句138 8.4.4 if結(jié)構(gòu)和switch結(jié)構(gòu)之比較139 8.4.5 switch結(jié)構(gòu)的常見錯誤與解決方法139 8.5 小結(jié)140 8.6 習(xí)題141 第9章 一遍又一遍——循環(huán)結(jié)構(gòu)142 9.1 構(gòu)造循環(huán)142 9.1.1 循環(huán)的條件142 9.1.2 當(dāng)型循環(huán)和直到型循環(huán)143 9.2 while和do...while循環(huán)結(jié)構(gòu)143 9.2.1 語法規(guī)則144 9.2.2 代碼塊145 9.2.3 while語句的常見錯誤145 9.2.4 do...while語句的常見錯誤146 9.3 for循環(huán)結(jié)構(gòu)147 9.3.1 基本形式147 9.3.2 表達(dá)式省略149 9.3.3 循環(huán)終止和步長150 9.3.4 for語句的常見錯誤150 9.4 循環(huán)嵌套151 9.4.1 嵌套示例151 9.4.2 嵌套的效率152 9.4.3 循環(huán)嵌套程序的常見錯誤153 9.5 與循環(huán)密切相關(guān)的流程轉(zhuǎn)向控制語句154 9.5.1 用break跳出循環(huán)154 9.5.2 用continue重來一次155 9.5.3 用goto實現(xiàn)跳轉(zhuǎn)156 9.6 小結(jié)157 9.7 習(xí)題157 第二篇 一窺C語言門徑 第10章 同一類型多個元素的集合——簡單數(shù)組159 10.1 什么是數(shù)組159 10.1.1 數(shù)組是一大片連續(xù)內(nèi)存空間159 10.1.2 數(shù)組元素的訪問160 10.2 一維數(shù)組160 10.2.1 一維數(shù)組的聲明160 10.2.2 一維數(shù)組元素的訪問161 10.2.3 一維數(shù)組的初始化162 10.2.4 不合法的數(shù)組操作163 10.3 二維數(shù)組164 10.3.1 二維數(shù)組的聲明164 10.3.2 二維數(shù)組的初始化164 10.3.3 二維數(shù)組應(yīng)用舉例165 10.4 更高維的數(shù)組166 10.4.1 高維數(shù)組的聲明和元素訪問166 10.4.2 初始化166 10.4.3 多維數(shù)組在內(nèi)存中是如何排列元素的167 10.5 小結(jié)168 10.6 習(xí)題168 第11章 寫程序就是寫函數(shù)——函數(shù)入門170 11.1 什么是函數(shù)170 11.1.1 函數(shù)的由來170 11.1.2 C語言中的函數(shù)170 11.2 自定義函數(shù)171 11.2.1 函數(shù)定義語法171 11.2.2 函數(shù)定義范例172 11.2.3 不要重復(fù)定義173 11.3 函數(shù)調(diào)用與返回173 11.3.1 形參和實參174 11.3.2 傳址調(diào)用175 11.3.3 函數(shù)返回176 11.4 告訴編譯器有這么一個函數(shù)177 11.4.1 函數(shù)聲明的語法177 11.4.2 聲明不同于定義179 11.4.3 標(biāo)準(zhǔn)庫函數(shù)的聲明180 11.5 函數(shù)的調(diào)用過程180 11.6 小結(jié)180 11.7 習(xí)題180 第12章 C語言難點——指針初探182 12.1 計算機(jī)中的內(nèi)存182 12.1.1 內(nèi)存地址182 12.1.2 內(nèi)存中保存的內(nèi)容183 12.1.3 地址就是指針183 12.2 指針的定義183 12.2.1 指針變量的聲明183 12.2.2 指針變量的初始化184 12.2.3 指針變量的值185 12.2.4 取地址操作符&185 12.2.5 指針變量占據(jù)一定的內(nèi)存空間185 12.2.6 指向指針的指針186 12.2.7 指針變量常見的錯誤分析與解決186 12.3 使用指針187 12.3.1 運(yùn)算符*188 12.3.2 指針的類型和指針?biāo)赶虻念愋?89 12.3.3 同類型指針的賦值189 12.3.4 void指針190 12.3.5 指針的類型和指針?biāo)赶虻念愋筒煌?90 12.4 指針的運(yùn)算192 12.4.1 算術(shù)運(yùn)算之“指針+整數(shù)”或“指針-整數(shù)”192 12.4.2 指針-指針193 12.4.3 指針的大小比較194 12.5 指針表達(dá)式與左值194 12.5.1 指針與整型194 12.5.2 指針與左值195 12.5.3 指針與const195 12.6 動態(tài)內(nèi)存分配196 12.6.1 動態(tài)分配的好處196 12.6.2 malloc與free函數(shù)197 12.6.3 calloc與free198 12.6.4 free函數(shù)與指針199 12.6.5 內(nèi)存泄漏199 12.6.6 釋放已經(jīng)釋放了的內(nèi)存會出問題200 12.7 小結(jié)200 12.8 習(xí)題200 第13章 字符串及字符串操作202 13.1 C風(fēng)格字符串202 13.1.1 C風(fēng)格字符串的聲明202 13.1.2 C風(fēng)格字符串在內(nèi)存中的表示202 13.2 字符數(shù)組的輸入輸出203 13.2.1 字符數(shù)組的聲明203 13.2.2 字符數(shù)組可以進(jìn)行整體輸入輸出204 13.2.3 使用gets()函數(shù)讀取整行205 13.2.4 訪問字符數(shù)組中某個元素205 13.2.5 使用puts()函數(shù)實現(xiàn)字符串的輸出206 13.2.6 使用字符數(shù)組的常見問題206 13.3 字符串處理函數(shù)207 13.3.1 理解:數(shù)組名是常指針208 13.3.2 strlen()函數(shù)與size_t210 13.3.3 字符串復(fù)制函數(shù)strcpy()211 13.3.4 字符串比較函數(shù)strcmp()212 13.3.5 字符串連接函數(shù)strcat()213 13.3.6 全轉(zhuǎn)換為大寫形式213 13.3.7 鏈?zhǔn)讲僮?14 13.4 小結(jié)214 13.5 習(xí)題215 第14章 結(jié)構(gòu)體、共用體、枚舉和typedef216 14.1 結(jié)構(gòu)體216 14.1.1 結(jié)構(gòu)體的定義216 14.1.2 聲明結(jié)構(gòu)體變量217 14.1.3 初始化結(jié)構(gòu)變量218 14.1.4 訪問結(jié)構(gòu)體成員218 14.1.5 結(jié)構(gòu)體定義的位置219 14.1.6 結(jié)構(gòu)體變量賦值219 14.2 特殊結(jié)構(gòu)體220 14.2.1 結(jié)構(gòu)體嵌套220 14.2.2 匿名結(jié)構(gòu)體223 14.3 共用體224 14.3.1 什么是共用體224 14.3.2 共用體的定義224 14.3.3 聲明共用體變量225 14.3.4 共用體變量的初始化225 14.3.5 共用體成員訪問225 14.3.6 共用體賦值226 14.4 結(jié)構(gòu)體和共用體的內(nèi)存差異226 14.4.1 結(jié)構(gòu)體變量和共用體變量內(nèi)存形式的不同227 14.4.2 結(jié)構(gòu)體變量的內(nèi)存大小227 14.4.3 字節(jié)對齊228 14.4.4 最寬基本類型228 14.4.5 共用體的大小229 14.5 枚舉類型230 14.5.1 什么是枚舉類型230 14.5.2 枚舉類型的定義230 14.5.3 聲明枚舉變量231 14.5.4 枚舉常量是什么231 14.5.5 使用枚舉時常見的錯誤232 14.6 給類型取個別名——typedef233 14.6.1 typedef基本用法233 14.6.2 #define用法233 14.7 小結(jié)234 14.8 習(xí)題234 第15章 如何節(jié)省內(nèi)存——位運(yùn)算235 15.1 什么是位運(yùn)算235 15.1.1 開燈關(guān)燈235 15.1.2 改變狀態(tài)235 15.1.3 計算機(jī)中的數(shù)據(jù)存儲形式236 15.2 位邏輯運(yùn)算符237 15.2.1 位取反操作237 15.2.2 位與運(yùn)算237 15.2.3 位或運(yùn)算237 15.2.4 位異或238 15.2.5 實例分析238 15.3 移位運(yùn)算239 15.3.1 基本形式239 15.3.2 移位舉例239 15.3.3 移位和乘以2241 15.4 小結(jié)241 15.5 習(xí)題241 第三篇 C語言進(jìn)階主題 第16章 存儲不僅僅局限于內(nèi)存——文件243 16.1 什么是文件243 16.1.1 文件243 16.1.2 流244 16.1.3 重定向244 16.1.4 文件的處理形式——緩沖區(qū)和非緩沖區(qū)245 16.1.5 文件的存儲形式——文本形式和二進(jìn)制形式245 16.2 C語言如何使用文件245 16.2.1 文件型指針245 16.2.2 文件操作的步驟246 16.3 文件的打開與關(guān)閉246 16.3.1 用于打開文件的fopen()函數(shù)247 16.3.2 打開是否成功248 16.3.3 用于關(guān)閉文件的fclose()函數(shù)249 16.4 文件的讀寫249 16.4.1 讀寫的相對參照249 16.4.2 如何判斷文件已經(jīng)結(jié)束249 16.4.3 字符讀寫函數(shù)fgetc()和fputc()250 16.4.4 字符串讀寫函數(shù)fgets()和fputs()251 16.4.5 塊讀寫函數(shù)fread()和fwrite()253 16.4.6 格式化文件輸入輸出fprintf()與fscanf()256 16.5 文件的定位258 16.5.1 移動指針到文件開頭rewind()258 16.5.2 移動指針到當(dāng)前位置ftell()258 16.5.3 移動指針fseek()258 16.6 小結(jié)260 16.7 習(xí)題260 第17章 靈活卻難以理解——指針進(jìn)階262 17.1 指針與數(shù)組262 17.1.1 數(shù)組名指針262 17.1.2 使用數(shù)組名常指針表示數(shù)組元素263 17.1.3 指向數(shù)組元素的指針變量263 17.1.4 指向數(shù)組的指針變量264 17.1.5 指針數(shù)組265 17.1.6 指針與數(shù)組的常見問題266 17.2 指針、結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組266 17.2.1 兩種訪問形式266 17.2.2 聲明創(chuàng)建一個結(jié)構(gòu)體數(shù)組267 17.2.3 結(jié)構(gòu)體數(shù)組的初始化267 17.2.4 結(jié)構(gòu)體數(shù)組的使用268 17.2.5 指向結(jié)構(gòu)體數(shù)組的指針268 17.3 函數(shù)指針269 17.3.1 函數(shù)名指針269 17.3.2 指向函數(shù)的指針270 17.3.3 函數(shù)指針類型272 17.3.4 函數(shù)指針作函數(shù)參數(shù)273 17.3.5 函數(shù)指針數(shù)組274 17.3.6 指向函數(shù)指針的指針275 17.4 小結(jié)275 17.5 習(xí)題276 第18章 更深入的理解——函數(shù)進(jìn)階277 18.1 參數(shù)傳遞的副本機(jī)制277 18.1.1 傳值調(diào)用的副本277 18.1.2 傳址調(diào)用的副本機(jī)制278 18.2 函數(shù)返回值的副本機(jī)制281 18.2.1 return 局部變量為什么合法281 18.2.2 返回指針申請動態(tài)內(nèi)存282 18.2.3 不要返回指向棧內(nèi)存的指針282 18.2.4 返回指向只讀存儲區(qū)的指針283 18.3 函數(shù)與結(jié)構(gòu)體283 18.3.1 結(jié)構(gòu)體變量的傳值和傳址調(diào)用283 18.3.2 結(jié)構(gòu)體變量的成員作為函數(shù)參數(shù)284 18.3.3 返回結(jié)構(gòu)體的函數(shù)285 18.3.4 返回結(jié)構(gòu)體指針的函數(shù)286 18.4 函數(shù)與數(shù)組286 18.4.1 數(shù)組元素作為函數(shù)參數(shù)286 18.4.2 數(shù)組名作為函數(shù)參數(shù)287 18.4.3 多維數(shù)組名作為函數(shù)參數(shù)289 18.4.4 數(shù)組名作函數(shù)參數(shù)時的退化290 18.5 遞歸290 18.5.1 遞歸流程290 18.5.2 遞歸兩要素292 18.5.3 效率VS可讀性293 18.6 帶參數(shù)的主函數(shù)294 18.7 小結(jié)295 18.8 習(xí)題295 第19章 生存期、作用域與可見域297 19.1 內(nèi)存分配297 19.1.1 內(nèi)存分區(qū)297 19.1.2 變量的存儲類別298 19.1.3 生存期299 19.1.4 作用域與可見域299 19.2 auto變量299 19.2.1 定義格式300 19.2.2 作用域和生存期300 19.2.3 auto變量的屏蔽準(zhǔn)則301 19.2.4 重復(fù)定義302 19.2.5 auto變量的初始化和特點302 19.3 register變量303 19.3.1 定義格式303 19.3.2 使用舉例303 19.4 extern變量304 19.4.1 全局變量定義304 19.4.2 全局變量聲明305 19.4.3 可見域306 19.4.4 全局變量的屏蔽準(zhǔn)則307 19.4.5 全局變量的利與弊309 19.5 static變量309 19.5.1 定義格式309 19.5.2 靜態(tài)局部變量310 19.5.3 靜態(tài)全局變量311 19.5.4 靜態(tài)局部變量和靜態(tài)全局變量的區(qū)別312 19.5.5 extern變量和static變量的初始化312 19.6 函數(shù)的作用域與可見域312 19.6.1 內(nèi)部函數(shù)313 19.6.2 外部函數(shù)314 19.7 結(jié)構(gòu)體定義的作用域與可見域314 19.7.1 定義位置與可見域314 19.7.2 允許重復(fù)定義315 19.8 常見的有關(guān)變量存儲的錯誤316 19.9 小結(jié)318 19.10 習(xí)題318 第20章 編譯及預(yù)處理320 20.1 編譯流程320 20.1.1 編輯321 20.1.2 預(yù)處理321 20.1.3 編譯321 20.1.4 連接322 20.2 程序錯誤322 20.2.1 錯誤分類323 20.2.2 編譯錯誤323 20.2.3 連接錯誤323 20.2.4 邏輯錯誤323 20.2.5 排錯324 20.3 預(yù)處理命令之宏定義324 20.3.1 宏定義324 20.3.2 不帶參數(shù)的宏定義324 20.3.3 帶參數(shù)的宏定義326 20.3.4 #define定義常量與const常量328 20.3.5 文件包含329 20.3.6 條件編譯330 20.3.7 宏函數(shù)331 20.4 小結(jié)332 20.5 習(xí)題333 第21章 數(shù)據(jù)結(jié)構(gòu)334 21.1 鏈表334 21.1.1 鏈表的結(jié)構(gòu)334 21.1.2 創(chuàng)建鏈表并遍歷輸出335 21.1.3 鏈表的插入338 21.1.4 鏈表結(jié)點的刪除341 21.1.5 鏈表的逆置342 21.1.6 鏈表的銷毀344 21.1.7 鏈表的綜合實例344 21.1.8 循環(huán)鏈表349 21.1.9 雙鏈表349 21.2 棧和隊列352 21.2.1 棧的定義353 21.2.2 棧的分類353 21.2.3 棧的操作353 21.2.4 函數(shù)與棧356 21.2.5 隊列356 21.3 自定義類型359 21.4 小結(jié)361 21.5 習(xí)題362 第四篇 C語言程序設(shè)計實例與面試題解析 第22章 面試題解析363 22.1 基礎(chǔ)知識363 22.1.1 指針自增自減有什么不同363 22.1.2 什么是遞歸364 22.1.3 宏定義與操作符的區(qū)別364 22.1.4 引用與值傳遞的區(qū)別364 22.1.5 指針和引用有什么區(qū)別364 22.1.6 什么是棧364 22.1.7 main函數(shù)執(zhí)行前還會執(zhí)行什么代碼364 22.1.8 static有什么用途365 22.1.9 定義int **a[3][4], 則變量占用的內(nèi)存空間為多少365 22.1.10 什么是預(yù)編譯365 22.1.11 int (*s[10])(int)表示什么意義365 22.1.12 結(jié)構(gòu)體與共同體有何區(qū)別365 22.2 算法和思維邏輯知識366 22.2.1 100美元哪里去了366 22.2.2 將16升水平均分給四個人366 22.2.3 算出小王買了幾瓶啤酒、幾瓶飲料367 22.2.4 找出不同的蘋果367 22.2.5 找出不同的球368 22.2.6 猜自己的帽子顏色368 22.2.7 3筐水果各是什么370 22.2.8 最后剩下的是誰370 22.2.9 聰明的商人371 22.2.10 紅球和白球371 22.2.11 烏龜賽跑372 22.2.12 投硬幣372 附錄 ASCII編碼表373
你還可能感興趣
我要評論
|