關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
零基礎(chǔ)學(xué)C語(yǔ)言(第4版)
本書(shū)分為“C語(yǔ)言基礎(chǔ)”“一窺C語(yǔ)言門(mén)徑”“C語(yǔ)言進(jìn)階”“C語(yǔ)言程序設(shè)計(jì)實(shí)例與面試題解析”四篇,系統(tǒng)全面地介紹了C語(yǔ)言各個(gè)方面的知識(shí),從*簡(jiǎn)單的“Hello World”程序?qū)懫,逐步深化、?xì)化,第壹篇。書(shū)中對(duì)每個(gè)知識(shí)和技術(shù)要點(diǎn)都給出了翔實(shí)的示例及代碼分析。和其他書(shū)籍中羅列代碼的做法不同,本書(shū)中的代碼力求短小精悍,直擊要點(diǎn),避免了細(xì)枝末節(jié)對(duì)讀者思維的干擾。在講解知識(shí)點(diǎn)的同時(shí)輔以筆者多年的C語(yǔ)言編程經(jīng)驗(yàn)解析,可加深讀者的理解。
前言
第一篇 C語(yǔ)言基礎(chǔ) 第1章 踏上征程前的思想動(dòng)員1 1.1 為什么選擇C語(yǔ)言1 1.2 如何學(xué)好C語(yǔ)言3 1.3 語(yǔ)言概述3 1.3.1 什么是語(yǔ)言3 1.3.2 什么是機(jī)器語(yǔ)言3 1.3.3 什么是匯編語(yǔ)言4 1.3.4 面向過(guò)程的語(yǔ)言5 1.3.5 什么是C語(yǔ)言5 1.4 程序的開(kāi)發(fā)周期5 1.4.1 編輯C源代碼6 1.4.2 編譯C源代碼6 1.4.3 連接目標(biāo)文件7 1.4.4 編譯連接過(guò)程示例7 1.4.5 運(yùn)行程序9 1.5 C、C++、VC++的區(qū)別和開(kāi)發(fā)環(huán)境9 1.6 小結(jié)11 1.7 習(xí)題11 第2章 跟我寫(xiě)Hello World13 2.1 了解需求才能創(chuàng)建程序13 2.2 認(rèn)識(shí)Code::Blocks開(kāi)發(fā)環(huán)境13 2.2.1 為什么選擇Code::Blocks14 2.2.2 啟動(dòng)Code::Blocks14 2.2.3 新建Hello World項(xiàng)目14 2.2.4 定義新項(xiàng)目15 2.2.5 添加源代碼到項(xiàng)目16 2.2.6 調(diào)試器設(shè)置16 2.2.7 開(kāi)始編輯代碼17 2.3 編譯運(yùn)行18 2.4 調(diào)試排錯(cuò)(debug)19 2.4.1 debug的由來(lái)19 2.4.2 設(shè)置斷點(diǎn)20 2.4.3 調(diào)試運(yùn)行20 2.5 第一個(gè)程序容易出現(xiàn)的錯(cuò)誤21 2.5.1 包含命令include21 2.5.2 關(guān)鍵字main22 2.5.3 表示代碼行結(jié)束的分號(hào)22 2.6 小結(jié)22 2.7 習(xí)題22 第3章 分解Hello World——最簡(jiǎn)單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 試驗(yàn)尋找#include的作用29 3.5.3 #include的作用30 3.6 計(jì)算1+1的程序?qū)嵗?1 3.7 數(shù)據(jù)從哪里來(lái),又到哪里去——變量32 3.7.1 變量在內(nèi)存中的表現(xiàn)形式32 3.7.2 編譯器使用變量符號(hào)表32 3.7.3 變量及其使用33 3.8 自己設(shè)計(jì)C函數(shù)35 3.8.1 在main函數(shù)中計(jì)算3個(gè)整數(shù)的平均數(shù)35 3.8.2 在main函數(shù)中分3次計(jì)算3個(gè)整數(shù)的平均數(shù)36 3.8.3 自編函數(shù)實(shí)現(xiàn)計(jì)算3個(gè)整數(shù)的平均數(shù)36 3.8.4 如何自編寫(xiě)函數(shù)37 3.8.5 觀察總結(jié)函數(shù)聲明和函數(shù)定義的意義38 3.9 語(yǔ)句構(gòu)成程序39 3.10 優(yōu)秀程序員的代碼風(fēng)格40 3.11 小結(jié)40 3.12 習(xí)題41 第4章 常量、變量及數(shù)據(jù)類(lèi)型42 4.1 計(jì)算機(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)存是存儲(chǔ)數(shù)據(jù)的房間45 4.2 數(shù)據(jù)類(lèi)型46 4.2.1 整數(shù)類(lèi)型46 4.2.2 整數(shù)的有符號(hào)和無(wú)符號(hào)48 4.2.3 實(shí)數(shù)類(lèi)型50 4.2.4 字符類(lèi)型50 4.2.5 數(shù)據(jù)類(lèi)型總結(jié)51 4.3 常量51 4.3.1 直接常量和符號(hào)常量52 4.3.2 符號(hào)常量的優(yōu)點(diǎn)53 4.3.3 直接常量的書(shū)寫(xiě)格式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)識(shí)符和關(guān)鍵字60 4.4.4 變量在內(nèi)存中占據(jù)的空間和變量的值62 4.4.5 為變量賦初值64 4.4.6 變量使用時(shí)常見(jiàn)的錯(cuò)誤65 4.5 幾個(gè)與變量相關(guān)的經(jīng)典算法66 4.5.1 累加和累乘66 4.5.2 交換兩個(gè)變量的值68 4.6 小結(jié)69 4.7 習(xí)題69 第5章 用屏幕和鍵盤(pán)交互——簡(jiǎn)單的輸出和輸入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 輸出帶符號(hào)的整數(shù)%d75 5.2.5 設(shè)置最小寬度的輸出75 5.2.6 長(zhǎng)整型輸出%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í)型數(shù)據(jù)%f81 5.2.13 輸出指數(shù)形式的實(shí)數(shù)82 5.2.14 自動(dòng)選擇%f或者%e形式輸出%g83 5.2.15 printf()函數(shù)的幾點(diǎn)說(shuō)明83 5.3 字符輸出putchar()和字符串輸出puts()84 5.3.1 字符輸出函數(shù)84 5.3.2 字符串輸出函數(shù)85 5.4 接收鍵盤(pán)輸入——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ù)的使用說(shuō)明91 5.4.6 使用scanf()函數(shù)的注意事項(xiàng)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)識(shí)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)算符簡(jiǎ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)先級(jí)及結(jié)合性106 6.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式107 6.3.1 逗號(hào)表達(dá)式的一般形式107 6.3.2 逗號(hào)表達(dá)式的優(yōu)先級(jí)和結(jié)合性108 6.4 關(guān)系運(yùn)算符和關(guān)系表達(dá)式109 6.4.1 關(guān)系運(yùn)算符的種類(lèi)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)制類(lèi)型轉(zhuǎn)換和自動(dòng)類(lèi)型轉(zhuǎn)換113 6.7.1 強(qiáng)制類(lèi)型轉(zhuǎn)換113 6.7.2 自動(dòng)類(lèi)型轉(zhuǎn)換115 6.8 運(yùn)算符的優(yōu)先級(jí)116 6.8.1 優(yōu)先級(jí)、結(jié)合性匯總116 6.8.2 sizeof運(yùn)算117 6.9 取地址運(yùn)算符117 6.10 小結(jié)118 6.11 習(xí)題118 第7章 程序的最小獨(dú)立單元——語(yǔ)句120 7.1 5種語(yǔ)句類(lèi)型120 7.1.1 表達(dá)式語(yǔ)句120 7.1.2 函數(shù)調(diào)用語(yǔ)句122 7.1.3 空語(yǔ)句122 7.1.4 復(fù)合語(yǔ)句(塊語(yǔ)句)122 7.1.5 流程控制語(yǔ)句123 7.2 結(jié)構(gòu)化程序設(shè)計(jì)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語(yǔ)句127 8.1.1 判斷表達(dá)式127 8.1.2 花括號(hào)和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 多分支語(yǔ)句和分支語(yǔ)句嵌套131 8.3.1 多分支131 8.3.2 多分支if結(jié)構(gòu)133 8.3.3 分支語(yǔ)句嵌套134 8.4 switch結(jié)構(gòu)135 8.4.1 一般形式135 8.4.2 為什么叫開(kāi)關(guān)語(yǔ)句137 8.4.3 default語(yǔ)句138 8.4.4 if結(jié)構(gòu)和switch結(jié)構(gòu)之比較139 8.4.5 switch結(jié)構(gòu)的常見(jiàn)錯(cuò)誤與解決方法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 語(yǔ)法規(guī)則144 9.2.2 代碼塊145 9.2.3 while語(yǔ)句的常見(jiàn)錯(cuò)誤145 9.2.4 do...while語(yǔ)句的常見(jiàn)錯(cuò)誤146 9.3 for循環(huán)結(jié)構(gòu)147 9.3.1 基本形式147 9.3.2 表達(dá)式省略149 9.3.3 循環(huán)終止和步長(zhǎng)150 9.3.4 for語(yǔ)句的常見(jiàn)錯(cuò)誤150 9.4 循環(huán)嵌套151 9.4.1 嵌套示例151 9.4.2 嵌套的效率152 9.4.3 循環(huán)嵌套程序的常見(jiàn)錯(cuò)誤153 9.5 與循環(huán)密切相關(guān)的流程轉(zhuǎn)向控制語(yǔ)句154 9.5.1 用break跳出循環(huán)154 9.5.2 用continue重來(lái)一次155 9.5.3 用goto實(shí)現(xiàn)跳轉(zhuǎn)156 9.6 小結(jié)157 9.7 習(xí)題157 第二篇 一窺C語(yǔ)言門(mén)徑 第10章 同一類(lèi)型多個(gè)元素的集合——簡(jiǎn)單數(shù)組159 10.1 什么是數(shù)組159 10.1.1 數(shù)組是一大片連續(xù)內(nèi)存空間159 10.1.2 數(shù)組元素的訪(fǎng)問(wèn)160 10.2 一維數(shù)組160 10.2.1 一維數(shù)組的聲明160 10.2.2 一維數(shù)組元素的訪(fǎng)問(wèn)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ù)組的聲明和元素訪(fǎng)問(wèn)166 10.4.2 初始化166 10.4.3 多維數(shù)組在內(nèi)存中是如何排列元素的167 10.5 小結(jié)168 10.6 習(xí)題168 第11章 寫(xiě)程序就是寫(xiě)函數(shù)——函數(shù)入門(mén)170 11.1 什么是函數(shù)170 11.1.1 函數(shù)的由來(lái)170 11.1.2 C語(yǔ)言中的函數(shù)170 11.2 自定義函數(shù)171 11.2.1 函數(shù)定義語(yǔ)法171 11.2.2 函數(shù)定義范例172 11.2.3 不要重復(fù)定義173 11.3 函數(shù)調(diào)用與返回173 11.3.1 形參和實(shí)參174 11.3.2 傳址調(diào)用175 11.3.3 函數(shù)返回176 11.4 告訴編譯器有這么一個(gè)函數(shù)177 11.4.1 函數(shù)聲明的語(yǔ)法177 11.4.2 聲明不同于定義179 11.4.3 標(biāo)準(zhǔn)庫(kù)函數(shù)的聲明180 11.5 函數(shù)的調(diào)用過(guò)程180 11.6 小結(jié)180 11.7 習(xí)題180 第12章 C語(yǔ)言難點(diǎn)——指針初探182 12.1 計(jì)算機(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 指針變量常見(jiàn)的錯(cuò)誤分析與解決186 12.3 使用指針187 12.3.1 運(yùn)算符*188 12.3.2 指針的類(lèi)型和指針?biāo)赶虻念?lèi)型189 12.3.3 同類(lèi)型指針的賦值189 12.3.4 void指針190 12.3.5 指針的類(lèi)型和指針?biāo)赶虻念?lèi)型不同190 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 動(dòng)態(tài)內(nèi)存分配196 12.6.1 動(dòng)態(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)存會(huì)出問(wèn)題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 訪(fǎng)問(wèn)字符數(shù)組中某個(gè)元素205 13.2.5 使用puts()函數(shù)實(shí)現(xiàn)字符串的輸出206 13.2.6 使用字符數(shù)組的常見(jiàn)問(wèn)題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)換為大寫(xiě)形式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 訪(fǎng)問(wèn)結(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 共用體成員訪(fǎng)問(wèn)225 14.3.6 共用體賦值226 14.4 結(jié)構(gòu)體和共用體的內(nèi)存差異226 14.4.1 結(jié)構(gòu)體變量和共用體變量?jī)?nèi)存形式的不同227 14.4.2 結(jié)構(gòu)體變量的內(nèi)存大小227 14.4.3 字節(jié)對(duì)齊228 14.4.4 最寬基本類(lèi)型228 14.4.5 共用體的大小229 14.5 枚舉類(lèi)型230 14.5.1 什么是枚舉類(lèi)型230 14.5.2 枚舉類(lèi)型的定義230 14.5.3 聲明枚舉變量231 14.5.4 枚舉常量是什么231 14.5.5 使用枚舉時(shí)常見(jiàn)的錯(cuò)誤232 14.6 給類(lèi)型取個(gè)別名——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 開(kāi)燈關(guān)燈235 15.1.2 改變狀態(tài)235 15.1.3 計(jì)算機(jī)中的數(shù)據(jù)存儲(chǔ)形式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 實(shí)例分析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語(yǔ)言進(jìn)階主題 第16章 存儲(chǔ)不僅僅局限于內(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 文件的存儲(chǔ)形式——文本形式和二進(jìn)制形式245 16.2 C語(yǔ)言如何使用文件245 16.2.1 文件型指針245 16.2.2 文件操作的步驟246 16.3 文件的打開(kāi)與關(guān)閉246 16.3.1 用于打開(kāi)文件的fopen()函數(shù)247 16.3.2 打開(kāi)是否成功248 16.3.3 用于關(guān)閉文件的fclose()函數(shù)249 16.4 文件的讀寫(xiě)249 16.4.1 讀寫(xiě)的相對(duì)參照249 16.4.2 如何判斷文件已經(jīng)結(jié)束249 16.4.3 字符讀寫(xiě)函數(shù)fgetc()和fputc()250 16.4.4 字符串讀寫(xiě)函數(shù)fgets()和fputs()251 16.4.5 塊讀寫(xiě)函數(shù)fread()和fwrite()253 16.4.6 格式化文件輸入輸出fprintf()與fscanf()256 16.5 文件的定位258 16.5.1 移動(dòng)指針到文件開(kāi)頭rewind()258 16.5.2 移動(dòng)指針到當(dāng)前位置ftell()258 16.5.3 移動(dòng)指針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ù)組的常見(jiàn)問(wèn)題266 17.2 指針、結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組266 17.2.1 兩種訪(fǎng)問(wèn)形式266 17.2.2 聲明創(chuàng)建一個(gè)結(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ù)指針類(lèi)型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 返回指針申請(qǐng)動(dòng)態(tài)內(nèi)存282 18.2.3 不要返回指向棧內(nèi)存的指針282 18.2.4 返回指向只讀存儲(chǔ)區(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ù)時(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章 生存期、作用域與可見(jiàn)域297 19.1 內(nèi)存分配297 19.1.1 內(nèi)存分區(qū)297 19.1.2 變量的存儲(chǔ)類(lèi)別298 19.1.3 生存期299 19.1.4 作用域與可見(jiàn)域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變量的初始化和特點(diǎn)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 可見(jiàn)域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ù)的作用域與可見(jiàn)域312 19.6.1 內(nèi)部函數(shù)313 19.6.2 外部函數(shù)314 19.7 結(jié)構(gòu)體定義的作用域與可見(jiàn)域314 19.7.1 定義位置與可見(jiàn)域314 19.7.2 允許重復(fù)定義315 19.8 常見(jiàn)的有關(guān)變量存儲(chǔ)的錯(cuò)誤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 程序錯(cuò)誤322 20.2.1 錯(cuò)誤分類(lèi)323 20.2.2 編譯錯(cuò)誤323 20.2.3 連接錯(cuò)誤323 20.2.4 邏輯錯(cuò)誤323 20.2.5 排錯(cuò)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é)點(diǎn)的刪除341 21.1.5 鏈表的逆置342 21.1.6 鏈表的銷(xiāo)毀344 21.1.7 鏈表的綜合實(shí)例344 21.1.8 循環(huán)鏈表349 21.1.9 雙鏈表349 21.2 棧和隊(duì)列352 21.2.1 棧的定義353 21.2.2 棧的分類(lèi)353 21.2.3 棧的操作353 21.2.4 函數(shù)與棧356 21.2.5 隊(duì)列356 21.3 自定義類(lèi)型359 21.4 小結(jié)361 21.5 習(xí)題362 第四篇 C語(yǔ)言程序設(shè)計(jì)實(shí)例與面試題解析 第22章 面試題解析363 22.1 基礎(chǔ)知識(shí)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í)行前還會(huì)執(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 算法和思維邏輯知識(shí)366 22.2.1 100美元哪里去了366 22.2.2 將16升水平均分給四個(gè)人366 22.2.3 算出小王買(mǎi)了幾瓶啤酒、幾瓶飲料367 22.2.4 找出不同的蘋(píng)果367 22.2.5 找出不同的球368 22.2.6 猜自己的帽子顏色368 22.2.7 3筐水果各是什么370 22.2.8 最后剩下的是誰(shuí)370 22.2.9 聰明的商人371 22.2.10 紅球和白球371 22.2.11 烏龜賽跑372 22.2.12 投硬幣372 附錄 ASCII編碼表373
你還可能感興趣
我要評(píng)論
|