在計(jì)算機(jī)發(fā)展的歷史上,沒有哪一種程序設(shè)計(jì)語言像C語言這樣應(yīng)用如此廣泛。 本書原著即為C語言的設(shè)計(jì)者之一Dennis M.Ritchie 和的計(jì)算機(jī)科學(xué)家 Brian W.Kernighan合著的一本介紹C語言的經(jīng)典著作。 我們現(xiàn)在見到的大量論述C語言程序設(shè)計(jì)的教材和專著均以此書為藍(lán)本。原著第1版中介紹的C語言成為后來廣泛使用的C語言版本--標(biāo)準(zhǔn)C的基礎(chǔ)。人們熟知的"hello,world"程序就是由本書首次引入的,現(xiàn)在,這一程序已經(jīng)成為所有程序設(shè)計(jì)語言入門的第一課。
原著第2版根據(jù)1987年制定的ANSI C標(biāo)準(zhǔn)做了適當(dāng)?shù)男抻啠肓?新的語言形式,并增加了新的示例。通過簡潔的描述、典型的示例,作者全面、系統(tǒng)、準(zhǔn)確地講述了C語言的各個(gè)特性以及程序設(shè)計(jì)的基本方法。 對(duì)于計(jì)算機(jī)從業(yè)人員來說,本書是一本必讀的程序設(shè)計(jì)語言方面的參考書。
出版者的話
中文版序
譯者序
校譯者簡介
第2版前言
第1版前言
引言
第1章 導(dǎo)言1
1.1 入門1
1.2 變量與算術(shù)表達(dá)式3
1.3 for語句8
1.4 符號(hào)常量9
1.5 字符輸入/輸出9
1.5.1 文件復(fù)制10
1.5.2 字符計(jì)數(shù)11
1.5.3 行計(jì)數(shù)13
1.5.4 單詞計(jì)數(shù)14
1.6 數(shù)組15
1.7 函數(shù)17
1.8 參數(shù)—傳值調(diào)用19
1.9 字符數(shù)組20
1.10 外部變量與作用域22
第2章 類型、運(yùn)算符與表達(dá)式27
2.1 變量名27
2.2 數(shù)據(jù)類型及長度27
2.3 常量28
2.4 聲明31
2.5 算術(shù)運(yùn)算符32
2.6 關(guān)系運(yùn)算符與邏輯運(yùn)算符32
2.7 類型轉(zhuǎn)換33
2.8 自增運(yùn)算符與自減運(yùn)算符37
2.9 位運(yùn)算符38
2.10 賦值運(yùn)算符與表達(dá)式40
2.11 條件表達(dá)式41
2.12 運(yùn)算符優(yōu)先級(jí)與求值次序42
第3章 控制流45
3.1 語句與程序塊45
3.2 if-else語句45
3.3 else-if語句46
3.4 switch語句48
3.5 while循環(huán)與for循環(huán)49
3.6 do-while循環(huán)52
3.7 break語句與continue語句53
3.8 goto語句與標(biāo)號(hào)54
第4章 函數(shù)與程序結(jié)構(gòu)57
4.1 函數(shù)的基本知識(shí)57
4.2 返回非整型值的函數(shù)60
4.3 外部變量62
4.4 作用域規(guī)則68
4.5 頭文件69
4.6 靜態(tài)變量70
4.7 寄存器變量71
4.8 程序塊結(jié)構(gòu)72
4.9 初始化72
4.10 遞歸73
4.11 C預(yù)處理器75
4.11.1 文件包含75
4.11.2 宏替換76
4.11.3 條件包含78
第5章 指針與數(shù)組79
5.1 指針與地址79
5.2 指針與函數(shù)參數(shù)81
5.3 指針與數(shù)組83
5.4 地址算術(shù)運(yùn)算86
5.5 字符指針與函數(shù)89
5.6 指針數(shù)組以及指向指針的指針92
5.7 多維數(shù)組95
5.8 指針數(shù)組的初始化97
5.9 指針與多維數(shù)組97
5.10 命令行參數(shù)98
5.11 指向函數(shù)的指針102
5.12 復(fù)雜聲明105
第6章 結(jié)構(gòu)111
6.1 結(jié)構(gòu)的基本知識(shí)111
6.2 結(jié)構(gòu)與函數(shù)113
6.3 結(jié)構(gòu)數(shù)組115
6.4 指向結(jié)構(gòu)的指針119
6.5 自引用結(jié)構(gòu)121
6.6 表查找125
6.7 類型定義(typedef)127
6.8 聯(lián)合128
6.9 位字段130
第7章 輸入與輸出133
7.1 標(biāo)準(zhǔn)輸入/輸出133
7.2 格式化輸出—printf函數(shù)135
7.3 變長參數(shù)表136
7.4 格式化輸入—scanf函數(shù)137
7.5 文件訪問140
7.6 錯(cuò)誤處理—stderr和exit143
7.7 行輸入和行輸出144
7.8 其他函數(shù)145
7.8.1 字符串操作函數(shù)145
7.8.2 字符類別測試和轉(zhuǎn)換函數(shù)146
7.8.3 ungetc函數(shù)146
7.8.4 命令執(zhí)行函數(shù)146
7.8.5 存儲(chǔ)管理函數(shù)147
7.8.6 數(shù)學(xué)函數(shù)147
7.8.7 隨機(jī)數(shù)發(fā)生器函數(shù)148
第8章 UNIX系統(tǒng)接口149
8.1 文件描述符149
8.2 低級(jí)I/O—read和write150
8.3 open、creat、close和unlink151
8.4 隨機(jī)訪問—lseek153
8.5 實(shí)例—fopen和getc函數(shù)的實(shí)現(xiàn)154
8.6 實(shí)例—目錄列表157
8.7 實(shí)例—存儲(chǔ)分配程序162
附錄A 參考手冊167
A.1 引言167
A.2 詞法規(guī)則167
A.2.1 記號(hào)167
A.2.2 注釋167
A.2.3 標(biāo)識(shí)符167
A.2.4 關(guān)鍵字168
A.2.5 常量168
A.2.6 字符串字面值170
A.3 語法符號(hào)170
A.4 標(biāo)識(shí)符的含義170
A.4.1 存儲(chǔ)類171
A.4.2 基本類型171
A.4.3 派生類型172
A.4.4 類型限定符172
A.5 對(duì)象和左值172
A.6 轉(zhuǎn)換173
A.6.1 整型提升173
A.6.2 整型轉(zhuǎn)換173
A.6.3 整數(shù)和浮點(diǎn)數(shù)173
A.6.4 浮點(diǎn)類型173
A.6.5 算術(shù)類型轉(zhuǎn)換173
A.6.6 指針和整數(shù)174
A.6.7 void175
A.6.8 指向void的指針175
A.7 表達(dá)式175
A.7.1 指針生成176
A.7.2 初等表達(dá)式176
A.7.3 后綴表達(dá)式177
A.7.4 一元運(yùn)算符179
A.7.5 強(qiáng)制類型轉(zhuǎn)換180
A.7.6 乘法類運(yùn)算符180
A.7.7 加法類運(yùn)算符181
A.7.8 移位運(yùn)算符181
A.7.9 關(guān)系運(yùn)算符182
A.7.10 相等類運(yùn)算符182
A.7.11 按位與運(yùn)算符183
A.7.12 按位異或運(yùn)算符183
A.7.13 按位或運(yùn)算符183
A.7.14 邏輯與運(yùn)算符183
A.7.15 邏輯或運(yùn)算符183
A.7.16 條件運(yùn)算符184
A.7.17 賦值表達(dá)式184
A.7.18 逗號(hào)運(yùn)算符185
A.7.19 常量表達(dá)式185
A.8 聲明185
A.8.1 存儲(chǔ)類說明符186
A.8.2 類型說明符187
A.8.3 結(jié)構(gòu)和聯(lián)合聲明188
A.8.4 枚舉191
A.8.5 聲明符191
A.8.6 聲明符的含義192
A.8.7 初始化195
A.8.8 類型名197
A.8.9 typedef198
A.8.10 類型等價(jià)199
A.9 語句199
A.9.1 帶標(biāo)號(hào)語句199
A.9.2 表達(dá)式語句199
A.9.3 復(fù)合語句200
A.9.4 選擇語句200
A.9.5 循環(huán)語句201
A.9.6 跳轉(zhuǎn)語句201
A.10 外部聲明202
A.10.1 函數(shù)定義202
A.10.2 外部聲明204
A.11 作用域與連接204
A.11.1 詞法作用域205
A.11.2 連接205
A.12 預(yù)處理205
A.12.1 三字符序列206
A.12.2 行連接206
A.12.3 宏定義和擴(kuò)展206
A.12.4 文件包含208
A.12.5 條件編譯209
A.12.6 行控制210
A.12.7 錯(cuò)誤信息生成210
A.12.8 pragma210
A.12.9 空指令210
A.12.10 預(yù)定義名字211
A.13 語法211
附錄B 標(biāo)準(zhǔn)庫219
B.1 輸入與輸出:
219
B.1.1 文件操作220
B.1.2 格式化輸出221
B.1.3 格式化輸入223
B.1.4 字符輸入/輸出函數(shù)224
B.1.5 直接輸入/輸出函數(shù)225
B.1.6 文件定位函數(shù)225
B.1.7 錯(cuò)誤處理函數(shù)226
B.2 字符類別測試:226
B.3 字符串函數(shù):227
B.4 數(shù)學(xué)函數(shù):228
B.5 實(shí)用函數(shù):229
B.6 診斷:232
B.7 可變參數(shù)表:232
B.8 非局部跳轉(zhuǎn):232
B.9 信號(hào):233
B.10 日期與時(shí)間函數(shù):234
B.11 與具體實(shí)現(xiàn)相關(guān)的限制:
和 236
附錄C 變更小結(jié)237
索引241