C語言程序設(shè)計(jì) 現(xiàn)代方法 第2版·修訂版
-
>
決戰(zhàn)行測5000題(言語理解與表達(dá))
-
>
軟件性能測試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈(zèng)1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
C語言程序設(shè)計(jì) 現(xiàn)代方法 第2版·修訂版 版權(quán)信息
- ISBN:9787115565198
- 條形碼:9787115565198 ; 978-7-115-56519-8
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
C語言程序設(shè)計(jì) 現(xiàn)代方法 第2版·修訂版 本書特色
適讀人群 :本書是C開發(fā)人員的理想?yún)⒖紩趪庖脖槐姸啻髮W(xué)作為C語言課程的教材。1.近30年來C語言入門教程,累計(jì)印數(shù)10萬+,豆瓣評分9.3分 2.C開發(fā)人員的理想?yún)⒖紩,哈佛、麻省理工、斯坦福等諸多名校C語言教材 3.第二版修訂版基于C1X標(biāo)準(zhǔn)新升級(jí),增加了C11和C18中的內(nèi)容,同時(shí)章末包含大量習(xí)題供讀者練習(xí) 4.書中討論了各種實(shí)際的環(huán)境和使用場景,包括Windows、UNIX和Linux等 5.浙江大學(xué)教授翁愷、哈爾濱工業(yè)大學(xué)教授蘇小紅、Boolan咨詢師吳詠煒、Linux專家宋寶華聯(lián)合推薦 C語言已經(jīng)有近50年的歷史了。在中國,超過95%的大學(xué)用C語言作為入門編程語言,但也因此把C語言當(dāng)作一種學(xué)習(xí)編程的教學(xué)媒介語言來教,使得學(xué)生只學(xué)到了其中的基礎(chǔ)部分,而對C語言近30年的發(fā)展及其在工業(yè)中的應(yīng)用所知甚少。本書是難得的真正講述C語言的教材,覆蓋了C99、C11、C18標(biāo)準(zhǔn)的內(nèi)容。本書非常適合今后會(huì)用C語言來做嵌入式系統(tǒng)、設(shè)備驅(qū)動(dòng)和操作系統(tǒng)等產(chǎn)品開發(fā)的人士學(xué)習(xí)。在浙江大學(xué),我們在工程實(shí)踐課程中使用了本書的上一個(gè)版本,收獲了良好的教學(xué)效果。 ——翁愷,浙江大學(xué)計(jì)算機(jī)學(xué)院教授 書如其名,本書以一種嶄新的視角和通俗易懂的方式,來向讀者介紹C語言的“現(xiàn)代方法”,聚焦程序設(shè)計(jì)的核心問題和方法,給C語言這門經(jīng)久不衰、老而彌堅(jiān)的語言賦予了嶄新的面貌。本書介紹了C99和C1X的許多新特性,而且編排方式方便讀者查閱。本書用現(xiàn)代的視角來解讀C語言,每章后面的“問與答”也很貼心,適時(shí)地解答了讀者在閱讀過程中可能會(huì)遇到的很多疑難問題。本書內(nèi)容特別適合具備一定語言基礎(chǔ),想深入了解C語言精髓的讀者,我相信這本書一定會(huì)受到讀者的歡迎,成為C語言愛好者提升內(nèi)功的一本武林秘笈。 ——蘇小紅,哈爾濱工業(yè)大學(xué)教授、博士生導(dǎo)師,省級(jí)教學(xué)名師 本書討論了C語言的所有特性,從C89一直貫穿到C18。內(nèi)容足夠新,也足夠全面,這就是它的突出特色。 ——吳詠煒,Boolan首席咨詢師 本書是C語言程序設(shè)計(jì)的經(jīng)典圖書,本次修訂版增加了C1X的內(nèi)容,并就C1X與之前的C89、C99進(jìn)行了比對,做到了與時(shí)俱進(jìn)。本書更是新增了第28章,重點(diǎn)介紹了C1X的多線程特性,相信對讀者會(huì)有巨大的幫助。讀者通過閱讀本書,可深入理解C89、C99和C1X的演進(jìn),并進(jìn)一步思考C語言為什么這么演進(jìn),這對提高自身的思維能力以及對軟件工程問題的認(rèn)知都會(huì)有幫助。 ——宋寶華,資深Linux專家
C語言程序設(shè)計(jì) 現(xiàn)代方法 第2版·修訂版 內(nèi)容簡介
時(shí)至今日,C語言仍然是計(jì)算機(jī)領(lǐng)域的通用語言之一,但今天的C語言已經(jīng)和很初的時(shí)候大不相同了。本書主要目的就是通過一種“現(xiàn)代方法”來介紹C語言,書中強(qiáng)調(diào)標(biāo)準(zhǔn)C,強(qiáng)調(diào)軟件工程,不再強(qiáng)調(diào)“手工優(yōu)化”。第2版修訂版中不僅有C99中的新特性,還與時(shí)俱進(jìn)地增加了C11和C18中的內(nèi)容。本書分為C語言的基礎(chǔ)特性、C語言的不錯(cuò)特性、C語言標(biāo)準(zhǔn)庫和參考資料4個(gè)部分。每章末尾的“問與答”部分給出一系列與該章內(nèi)容相關(guān)的問題及答案,此外還包含適量的習(xí)題。 本書是C開發(fā)人員的理想?yún)⒖紩,在國外也被眾多大學(xué)作為C語言課程的教材。
C語言程序設(shè)計(jì) 現(xiàn)代方法 第2版·修訂版 目錄
1.1 C語言的歷史 1
1.1.1 起源 1
1.1.2 標(biāo)準(zhǔn)化 1
1.1.3 基于C的語言 2
1.2 C語言的優(yōu)缺點(diǎn) 3
1.2.1 C語言的優(yōu)點(diǎn) 3
1.2.2 C語言的缺點(diǎn) 4
1.2.3 高效地使用C語言 5
問與答 5
第 2章 C語言基本概念 7
2.1 編寫一個(gè)簡單的C程序 7
2.1.1 編譯和鏈接 8
2.1.2 集成開發(fā)環(huán)境 9
2.2 簡單程序的一般形式 9
2.2.1 指令 9
2.2.2 函數(shù) 9
2.2.3 語句 10
2.2.4 顯示字符串 11
2.3 注釋 11
2.4 變量和賦值 13
2.4.1 類型 13
2.4.2 聲明 13
2.4.3 賦值 14
2.4.4 顯示變量的值 15
2.4.5 初始化 16
2.4.6 顯示表達(dá)式的值 17
2.5 讀入輸入 17
2.6 定義常量的名字 18
2.7 標(biāo)識(shí)符 19
2.8 C 程序的書寫規(guī)范 21
問與答 23
練習(xí)題 25
編程題 26
第3章 格式化輸入/輸出 28
3.1 printf函數(shù) 28
3.1.1 轉(zhuǎn)換說明 29
3.1.2 轉(zhuǎn)義序列 31
3.2 scanf函數(shù) 31
3.2.1 scanf函數(shù)的工作方法 32
3.2.2 格式串中的普通字符 34
3.2.3 易混淆的printf函數(shù)和scanf函數(shù) 34
問與答 35
練習(xí)題 37
編程題 38
第4章 表達(dá)式 40
4.1 算術(shù)運(yùn)算符 40
4.2 賦值運(yùn)算符 44
4.2.1 簡單賦值 44
4.2.2 左值 45
4.2.3 復(fù)合賦值 45
4.3 自增運(yùn)算符和自減運(yùn)算符 46
4.4 表達(dá)式求值 47
4.5 表達(dá)式語句 50
問與答 50
練習(xí)題 52
編程題 54
第5章 選擇語句 56
5.1 邏輯表達(dá)式 56
5.1.1 關(guān)系運(yùn)算符 56
5.1.2 判等運(yùn)算符 57
5.1.3 邏輯運(yùn)算符 57
5.2 if語句 58
5.2.1 復(fù)合語句 59
5.2.2 else子句 59
5.2.3 級(jí)聯(lián)式if語句 61
5.2.4 “懸空else”的問題 63
5.2.5 條件表達(dá)式 63
5.2.6 C89中的布爾值 64
5.2.7 C99中的布爾值 65
5.3 switch語句 66
問與答 69
練習(xí)題 72
編程題 74
第6章 循環(huán) 77
6.1 while語句 77
6.2 do語句 80
6.3 for語句 82
6.3.1 for語句的慣用法 83
6.3.2 在for語句中省略表達(dá)式 83
6.3.3 C99中的for語句 84
6.3.4 逗號(hào)運(yùn)算符 84
6.4 退出循環(huán) 86
6.4.1 break語句 87
6.4.2 continue語句 87
6.4.3 goto語句 88
6.5 空語句 90
問與答 92
練習(xí)題 94
編程題 95
第7章 基本類型 97
7.1 整數(shù)類型 97
7.1.1 C99中的整數(shù)類型 99
7.1.2 整型常量 99
7.1.3 C99中的整型常量 100
7.1.4 整數(shù)溢出 100
7.1.5 讀/寫整數(shù) 101
7.2 浮點(diǎn)類型 102
7.2.1 浮點(diǎn)常量 103
7.2.2 讀/寫浮點(diǎn)數(shù) 103
7.3 字符類型 104
7.3.1 字符操作 104
7.3.2 有符號(hào)字符和無符號(hào)字符 105
7.3.3 算術(shù)類型 105
7.3.4 轉(zhuǎn)義序列 106
7.3.5 字符處理函數(shù) 107
7.3.6 用scanf和printf讀/寫字符 108
7.3.7 用getchar和putchar讀/寫字符 108
7.4 類型轉(zhuǎn)換 110
7.4.1 常規(guī)算術(shù)轉(zhuǎn)換 111
7.4.2 賦值過程中的轉(zhuǎn)換 112
7.4.3 C99中的隱式轉(zhuǎn)換 113
7.4.4 強(qiáng)制類型轉(zhuǎn)換 114
7.5 類型定義 115
7.5.1 類型定義的優(yōu)點(diǎn) 115
7.5.2 類型定義和可移植性 116
7.6 sizeof運(yùn)算符 117
問與答 117
練習(xí)題 120
編程題 121
第8章 數(shù)組 124
8.1 一維數(shù)組 124
8.1.1 數(shù)組下標(biāo) 124
8.1.2 數(shù)組初始化 126
8.1.3 指示器 127
8.1.4 對數(shù)組使用sizeof運(yùn)算符 129
8.2 多維數(shù)組 130
8.2.1 多維數(shù)組初始化 131
8.2.2 常量數(shù)組 132
8.3 C99 中的變長數(shù)組 134
問與答 135
練習(xí)題 136
編程題 138
第9章 函數(shù) 141
9.1 函數(shù)的定義和調(diào)用 141
9.1.1 函數(shù)定義 144
9.1.2 函數(shù)調(diào)用 145
9.2 函數(shù)聲明 147
9.3 實(shí)際參數(shù) 149
9.3.1 實(shí)際參數(shù)的轉(zhuǎn)換 150
9.3.2 數(shù)組型實(shí)際參數(shù) 151
9.3.3 變長數(shù)組形式參數(shù) 153
9.3.4 在數(shù)組參數(shù)聲明中使用static 154
9.3.5 復(fù)合字面量 155
9.4 return語句 155
9.5 程序終止 156
9.6 遞歸 157
9.7 泛型選擇 161
問與答 163
練習(xí)題 166
編程題 169
第 10章 程序結(jié)構(gòu) 171
10.1 局部變量 171
10.1.1 靜態(tài)局部變量 172
10.1.2 形式參數(shù) 172
10.2 外部變量 172
10.2.1 示例:用外部變量實(shí)現(xiàn)棧 172
10.2.2 外部變量的利與弊 173
10.3 程序塊 177
10.4 作用域 178
10.5 構(gòu)建C程序 179
問與答 185
練習(xí)題 185
編程題 186
第 11章 指針 188
11.1 指針變量 188
11.2 取地址運(yùn)算符和間接尋址運(yùn)算符 189
11.2.1 取地址運(yùn)算符 189
11.2.2 間接尋址運(yùn)算符 190
11.3 指針賦值 191
11.4 指針作為參數(shù) 192
11.5 指針作為返回值 195
問與答 196
練習(xí)題 198
編程題 199
第 12章 指針和數(shù)組 201
12.1 指針的算術(shù)運(yùn)算 201
12.1.1 指針加上整數(shù) 202
12.1.2 指針減去整數(shù) 202
12.1.3 兩個(gè)指針相減 203
12.1.4 指針比較 203
12.1.5 指向復(fù)合字面量的指針 203
12.2 指針用于數(shù)組處理 204
12.3 用數(shù)組名作為指針 206
12.3.1 數(shù)組型實(shí)際參數(shù)(改進(jìn)版) 207
12.3.2 用指針作為數(shù)組名 208
12.4 指針和多維數(shù)組 209
12.4.1 處理多維數(shù)組的元素 209
12.4.2 處理多維數(shù)組的行 210
12.4.3 處理多維數(shù)組的列 210
12.4.4 用多維數(shù)組名作為指針 210
12.5 C99中的指針和變長數(shù)組 211
問與答 212
練習(xí)題 213
編程題 215
第 13章 字符串 217
13.1 字面串 217
13.1.1 字面串中的轉(zhuǎn)義序列 217
13.1.2 延續(xù)字面串 218
13.1.3 如何存儲(chǔ)字面串 218
13.1.4 字面串的操作 219
13.1.5 字面串與字符常量 219
13.2 字符串變量 220
13.2.1 初始化字符串變量 220
13.2.2 字符數(shù)組與字符指針 221
13.3 字符串的讀和寫 222
13.3.1 用printf函數(shù)和puts函數(shù)寫字符串 222
13.3.2 用scanf函數(shù)讀字符串 223
13.3.3 逐個(gè)字符讀字符串 224
13.4 訪問字符串中的字符 225
13.5 使用C語言的字符串庫 226
13.5.1 strcpy函數(shù) 226
13.5.2 strlen函數(shù) 227
13.5.3 strcat函數(shù) 228
13.5.4 strcmp函數(shù) 229
13.6 字符串慣用法 231
13.6.1 搜索字符串的結(jié)尾 232
13.6.2 復(fù)制字符串 233
13.7 字符串?dāng)?shù)組 235
問與答 238
練習(xí)題 241
編程題 243
第 14章 預(yù)處理器 246
14.1 預(yù)處理器的工作原理 246
14.2 預(yù)處理指令 248
14.3 宏定義 248
14.3.1 簡單的宏 249
14.3.2 帶參數(shù)的宏 250
14.3.3 #運(yùn)算符 252
14.3.4 ##運(yùn)算符 253
14.3.5 宏的通用屬性 254
14.3.6 宏定義中的圓括號(hào) 254
14.3.7 創(chuàng)建較長的宏 255
14.3.8 預(yù)定義宏 256
14.3.9 C99中新增的預(yù)定義宏 257
14.3.10 空的宏參數(shù) 258
14.3.11 參數(shù)個(gè)數(shù)可變的宏 259
14.3.12 __func__標(biāo)識(shí)符 260
14.4 條件編譯 260
14.4.1 #if指令和#endif指令 260
14.4.2 defined運(yùn)算符 261
14.4.3 #ifdef指令和#ifndef指令 261
14.4.4 #elif指令和#else指令 262
14.4.5 使用條件編譯 262
14.5 其他指令 263
14.5.1 #error指令 263
14.5.2 #line指令 264
14.5.3 #pragma指令 265
14.5.4 _Pragma運(yùn)算符 265
問與答 266
練習(xí)題 268
第 15章 編寫大型程序 272
15.1 源文件 272
15.2 頭文件 273
15.2.1 #include指令 273
15.2.2 共享宏定義和類型定義 274
15.2.3 共享函數(shù)原型 275
15.2.4 共享變量聲明 277
15.2.5 嵌套包含 278
15.2.6 保護(hù)頭文件 278
15.2.7 頭文件中的#error指令 279
15.3 把程序劃分成多個(gè)文件 279
15.4 構(gòu)建多文件程序 285
15.4.1 makefile 285
15.4.2 鏈接期間的錯(cuò)誤 287
15.4.3 重新構(gòu)建程序 287
15.4.4 在程序外定義宏 289
問與答 289
練習(xí)題 291
編程題 292
第 16章 結(jié)構(gòu)、聯(lián)合和枚舉 293
16.1 結(jié)構(gòu)變量 293
16.1.1 結(jié)構(gòu)變量的聲明 293
16.1.2 結(jié)構(gòu)變量的初始化 295
16.1.3 指示器 295
16.1.4 對結(jié)構(gòu)的操作 296
16.2 結(jié)構(gòu)類型 296
16.2.1 結(jié)構(gòu)標(biāo)記的聲明 297
16.2.2 結(jié)構(gòu)類型的定義 298
16.2.3 結(jié)構(gòu)作為參數(shù)和返回值 298
16.2.4 復(fù)合字面量 299
16.2.5 匿名結(jié)構(gòu) 300
16.3 嵌套的數(shù)組和結(jié)構(gòu) 301
16.3.1 嵌套的結(jié)構(gòu) 301
16.3.2 結(jié)構(gòu)數(shù)組 302
16.3.3 結(jié)構(gòu)數(shù)組的初始化 302
16.4 聯(lián)合 309
16.4.1 用聯(lián)合來節(jié)省空間 310
16.4.2 用聯(lián)合來構(gòu)造混合的數(shù)據(jù)結(jié)構(gòu) 312
16.4.3 為聯(lián)合添加“標(biāo)記字段” 312
16.4.4 匿名聯(lián)合 313
16.5 枚舉 314
16.5.1 枚舉標(biāo)記和類型名 315
16.5.2 枚舉作為整數(shù) 315
16.5.3 用枚舉聲明“標(biāo)記字段” 316
問與答 316
練習(xí)題 318
編程題 323
第 17章 指針的高級(jí)應(yīng)用 324
17.1 動(dòng)態(tài)存儲(chǔ)分配 324
17.1.1 內(nèi)存分配函數(shù) 325
17.1.2 空指針 325
17.2 動(dòng)態(tài)分配字符串 326
17.2.1 使用malloc函數(shù)為字符串分配內(nèi)存 326
17.2.2 在字符串函數(shù)中使用動(dòng)態(tài)存儲(chǔ)分配 327
17.2.3 動(dòng)態(tài)分配字符串的數(shù)組 327
17.3 動(dòng)態(tài)分配數(shù)組 329
17.3.1 使用malloc函數(shù)為數(shù)組分配存儲(chǔ)空間 329
17.3.2 calloc函數(shù) 330
17.3.3 realloc函數(shù) 330
17.4 釋放存儲(chǔ)空間 331
17.4.1 free函數(shù) 332
17.4.2 “懸空指針”問題 332
17.5 鏈表 332
17.5.1 聲明結(jié)點(diǎn)類型 333
17.5.2 創(chuàng)建結(jié)點(diǎn) 333
17.5.3 ->運(yùn)算符 334
17.5.4 在鏈表的開始處插入結(jié)點(diǎn) 335
17.5.5 搜索鏈表 337
17.5.6 從鏈表中刪除結(jié)點(diǎn) 338
17.5.7 有序鏈表 339
17.6 指向指針的指針 344
17.7 指向函數(shù)的指針 345
17.7.1 函數(shù)指針作為參數(shù) 345
17.7.2 qsort函數(shù) 346
17.7.3 函數(shù)指針的其他用途 347
17.8 受限指針 350
17.9 彈性數(shù)組成員 351
問與答 352
練習(xí)題 355
編程題 358
第 18章 聲明 359
18.1 聲明的語法 359
18.2 存儲(chǔ)類型 360
18.2.1 變量的性質(zhì) 361
18.2.2 auto存儲(chǔ)類型 361
18.2.3 static存儲(chǔ)類型 362
18.2.4 extern存儲(chǔ)類型 363
18.2.5 register存儲(chǔ)類型 363
18.2.6 函數(shù)的存儲(chǔ)類型 364
18.2.7 小結(jié) 365
18.3 類型限定符 366
18.4 聲明符 366
18.4.1 解釋復(fù)雜聲明 368
18.4.2 使用類型定義來簡化聲明 369
18.5 初始化器 369
18.6 內(nèi)聯(lián)函數(shù) 371
18.6.1 內(nèi)聯(lián)定義 371
18.6.2 對內(nèi)聯(lián)函數(shù)的限制 372
18.6.3 在GCC中使用內(nèi)聯(lián)函數(shù) 372
18.7 函數(shù)指定符_Noreturn和頭 373
18.8 靜態(tài)斷言 373
問與答 374
練習(xí)題 377
第 19章 程序設(shè)計(jì) 379
19.1 模塊 379
19.1.1 內(nèi)聚性與耦合性 381
19.1.2 模塊的類型 381
19.2 信息隱藏 381
19.3 抽象數(shù)據(jù)類型 385
19.3.1 封裝 385
19.3.2 不完整類型 386
19.4 棧抽象數(shù)據(jù)類型 386
19.4.1 為棧抽象數(shù)據(jù)類型定義接口 386
19.4.2 用定長數(shù)組實(shí)現(xiàn)棧抽象數(shù)據(jù)類型 388
19.4.3 改變棧抽象數(shù)據(jù)類型中數(shù)據(jù)項(xiàng)的類型 389
19.4.4 用動(dòng)態(tài)數(shù)組實(shí)現(xiàn)棧抽象數(shù)據(jù)類型 390
19.4.5 用鏈表實(shí)現(xiàn)棧抽象數(shù)據(jù)類型 392
19.5 抽象數(shù)據(jù)類型的設(shè)計(jì)問題 394
19.5.1 命名慣例 394
19.5.2 錯(cuò)誤處理 394
19.5.3 通用抽象數(shù)據(jù)類型 394
19.5.4 新語言中的抽象數(shù)據(jù)類型 395
問與答 395
練習(xí)題 396
編程題 397
第 20章 底層程序設(shè)計(jì) 398
20.1 位運(yùn)算符 398
20.1.1 移位運(yùn)算符 398
20.1.2 按位取反運(yùn)算符、按位與運(yùn)算符、按位異或運(yùn)算符和按位或運(yùn)算符 399
20.1.3 用位運(yùn)算符訪問位 400
20.1.4 用位運(yùn)算符訪問位域 401
20.2 結(jié)構(gòu)中的位域 403
20.3 其他底層技術(shù) 405
20.3.1 定義依賴機(jī)器的類型 405
20.3.2 用聯(lián)合來提供數(shù)據(jù)的多個(gè)視角 405
20.3.3 將指針作為地址使用 407
20.3.4 volatile類型限定符 409
20.4 對象的對齊 410
20.4.1 對齊運(yùn)算符_Alignof 410
20.4.2 對齊指定符_Alignas和頭 410
問與答 411
練習(xí)題 411
編程題 413
第 21章 標(biāo)準(zhǔn)庫 414
21.1 標(biāo)準(zhǔn)庫的使用 414
21.1.1 對標(biāo)準(zhǔn)庫中所用名字的限制 415
21.1.2 使用宏隱藏的函數(shù) 415
21.2 C89標(biāo)準(zhǔn)庫概述 416
21.3 C99標(biāo)準(zhǔn)庫更新 417
21.4 :常用定義 418
21.5 :布爾類型和值 419
21.6 C11標(biāo)準(zhǔn)庫更新 419
21.7 :地址的對齊 420
21.8 :宏noreturn的定義 420
問與答 420
練習(xí)題 421
編程題 422
第 22章 輸入/輸出 423
22.1 流 423
22.1.1 文件指針 424
22.1.2 標(biāo)準(zhǔn)流和重定向 424
22.1.3 文本文件與二進(jìn)制文件 425
22.2 文件操作 426
22.2.1 打開文件 426
22.2.2 模式 427
22.2.3 關(guān)閉文件 428
22.2.4 為打開的流附加文件 428
22.2.5 從命令行獲取文件名 429
22.2.6 臨時(shí)文件 430
22.2.7 文件緩沖 431
22.2.8 其他文件操作 432
22.3 格式化的輸入/輸出 433
22.3.1 …printf函數(shù) 433
22.3.2 …printf轉(zhuǎn)換說明 433
22.3.3 C99對…printf轉(zhuǎn)換說明的修改 435
22.3.4 …printf轉(zhuǎn)換說明示例 436
22.3.5 …scanf函數(shù) 438
22.3.6 …scanf格式串 438
22.3.7 …scanf轉(zhuǎn)換說明 439
22.3.8 C99對…scanf轉(zhuǎn)換說明的改變 441
22.3.9 scanf示例 441
22.3.10 檢測文件末尾和錯(cuò)誤條件 442
22.4 字符的輸入/輸出 444
22.4.1 輸出函數(shù) 444
22.4.2 輸入函數(shù) 444
22.5 行的輸入/輸出 446
22.5.1 輸出函數(shù) 446
22.5.2 輸入函數(shù) 447
22.6 塊的輸入/輸出 447
22.7 文件定位 448
22.8 字符串的輸入/輸出 451
22.8.1 輸出函數(shù) 451
22.8.2 輸入函數(shù) 452
問與答 452
練習(xí)題 455
編程題 458
第 23章 庫對數(shù)值和字符數(shù)據(jù)的支持 462
23.1 :浮點(diǎn)類型的特性 462
23.2 :整數(shù)類型的大小 464
23.3 :數(shù)學(xué)計(jì)算(C89) 465
23.3.1 錯(cuò)誤 465
23.3.2 三角函數(shù) 466
23.3.3 雙曲函數(shù) 466
23.3.4 指數(shù)函數(shù)和對數(shù)函數(shù) 467
23.3.5 冪函數(shù) 467
23.3.6 就近舍入函數(shù)、絕對值函數(shù)和取余函數(shù) 468
23.4 :數(shù)學(xué)計(jì)算 468
23.4.1 IEEE浮點(diǎn)標(biāo)準(zhǔn) 469
23.4.2 類型 470
23.4.3 宏 470
23.4.4 錯(cuò)誤 470
23.4.5 函數(shù) 471
23.4.6 分類宏 471
23.4.7 三角函數(shù) 472
23.4.8 雙曲函數(shù) 472
23.4.9 指數(shù)函數(shù)和對數(shù)函數(shù) 473
23.4.10 冪函數(shù)和絕對值函數(shù) 474
23.4.11 誤差函數(shù)和伽馬函數(shù) 474
23.4.12 就近舍入函數(shù) 475
23.4.13 取余函數(shù) 476
23.4.14 操作函數(shù) 477
23.4.15 *大值函數(shù)、*小值函數(shù)和正差函數(shù) 477
23.4.16 浮點(diǎn)乘加 478
23.4.17 比較宏 478
23.5 :字符處理 479
23.5.1 字符分類函數(shù) 479
23.5.2 字符大小寫映射函數(shù) 481
23.6 :字符串處理 482
23.6.1 復(fù)制函數(shù) 482
23.6.2 拼接函數(shù) 483
23.6.3 比較函數(shù) 484
23.6.4 搜索函數(shù) 485
23.6.5 其他函數(shù) 487
問與答 488
練習(xí)題 488
編程題 490
第 24章 錯(cuò)誤處理 491
24.1 :診斷 491
24.2 :錯(cuò)誤 492
24.3 :信號(hào)處理 494
24.3.1 信號(hào)宏 494
24.3.2 signal函數(shù) 494
24.3.3 預(yù)定義的信號(hào)處理函數(shù) 495
24.3.4 raise函數(shù) 496
24.4 :非局部跳轉(zhuǎn) 497
問與答 499
練習(xí)題 500
第 25章 國際化特性 502
25.1 :本地化 502
25.1.1 類項(xiàng) 503
25.1.2 setlocale函數(shù) 503
25.1.3 localeconv函數(shù) 504
25.2 多字節(jié)字符和寬字符 507
25.2.1 多字節(jié)字符 507
25.2.2 寬字符 508
25.2.3 Unicode和通用字符集 508
25.2.4 Unicode編碼 509
25.2.5 多字節(jié)/寬字符轉(zhuǎn)換函數(shù) 510
25.2.6 多字節(jié)/寬字符串轉(zhuǎn)換函數(shù) 511
25.3 雙聯(lián)符和三聯(lián)符 512
25.3.1 三聯(lián)符 512
25.3.2 雙聯(lián)符 513
25.3.3 :拼寫替換 513
25.4 通用字符名 514
25.5 :擴(kuò)展的多字節(jié)和寬字符實(shí)用工具 514
25.5.1 流的傾向性 515
25.5.2 格式化寬字符輸入/輸出函數(shù) 515
25.5.3 寬字符輸入/輸出函數(shù) 517
25.5.4 通用的寬字符串實(shí)用工具 518
25.5.5 寬字符時(shí)間轉(zhuǎn)換函數(shù) 521
25.5.6 擴(kuò)展的多字節(jié)/寬字符轉(zhuǎn)換實(shí)用工具 521
25.6 :寬字符分類和映射實(shí)用工具 523
25.6.1 寬字符分類函數(shù) 524
25.6.2 可擴(kuò)展的寬字符分類函數(shù) 525
25.6.3 寬字符大小寫映射函數(shù) 525
25.6.4 可擴(kuò)展的寬字符大小寫映射函數(shù) 525
25.7 :改進(jìn)的Unicode支持 526
25.7.1 帶u、U和u8前綴的字面串 526
25.7.2 可重啟動(dòng)的多字節(jié)/寬字符轉(zhuǎn)換函數(shù) 527
問與答 528
練習(xí)題 529
編程題 530
第 26章 其他庫函數(shù) 531
26.1 :可變參數(shù) 531
26.1.1 調(diào)用帶有可變參數(shù)列表的函數(shù) 533
26.1.2 v…printf函數(shù) 533
26.1.3 v…scanf函數(shù) 534
26.2 :通用的實(shí)用工具 534
26.2.1 數(shù)值轉(zhuǎn)換函數(shù) 535
26.2.2 偽隨機(jī)序列生成函數(shù) 537
26.2.3 與環(huán)境的通信 539
26.2.4 搜索和排序?qū)嵱霉ぞ摺?40
26.2.5 整數(shù)算術(shù)運(yùn)算函數(shù) 542
26.2.6 地址對齊的內(nèi)存分配 542
26.3 :日期和時(shí)間 542
26.3.1 時(shí)間處理函數(shù) 543
26.3.2 時(shí)間轉(zhuǎn)換函數(shù) 545
問與答 550
練習(xí)題 552
編程題 553
第 27章 C99對數(shù)學(xué)計(jì)算的新增支持 554
27.1 :整數(shù)類型 554
27.1.1 類型 555
27.1.2 對指定寬度整數(shù)類型的限制 555
27.1.3 對其他整數(shù)類型的限制 556
27.1.4 用于整型常量的宏 557
27.2 :整數(shù)類型的格式轉(zhuǎn)換 557
27.2.1 用于格式指定符的宏 557
27.2.2 用于*大寬度整數(shù)類型的函數(shù) 558
27.3 復(fù)數(shù) 559
27.3.1 復(fù)數(shù)的定義 559
27.3.2 復(fù)數(shù)的算術(shù)運(yùn)算 560
27.3.3 C99中的復(fù)數(shù)類型 561
27.3.4 復(fù)數(shù)的運(yùn)算 561
27.3.5 復(fù)數(shù)類型的轉(zhuǎn)換規(guī)則 562
27.4 :復(fù)數(shù)算術(shù)運(yùn)算 562
27.4.1 宏 562
27.4.2 CX_LIMITED_RANGE編譯提示 563
27.4.3 函數(shù) 564
27.4.4 三角函數(shù) 564
27.4.5 雙曲函數(shù) 565
27.4.6 指數(shù)函數(shù)和對數(shù)函數(shù) 565
27.4.7 冪函數(shù)和絕對值函數(shù) 566
27.4.8 操作函數(shù) 566
27.5 :泛型數(shù)學(xué) 567
27.5.1 泛型宏 568
27.5.2 調(diào)用泛型宏 569
27.6 :浮點(diǎn)環(huán)境 570
27.6.1 浮點(diǎn)狀態(tài)標(biāo)志和控制模式 570
27.6.2 宏 571
27.6.3 FENV_ACCESS編譯提示 571
27.6.4 浮點(diǎn)異常函數(shù) 572
27.6.5 舍入函數(shù) 573
27.6.6 環(huán)境函數(shù) 573
問與答 573
練習(xí)題 574
編程題 575
第 28章 C1X新增的多線程和原子操作支持 576
28.1 :多線程執(zhí)行支持 577
28.1.1 線程啟動(dòng)函數(shù) 577
28.1.2 線程的創(chuàng)建和管理函數(shù) 578
28.1.3 數(shù)據(jù)競爭 581
28.1.4 互斥函數(shù) 583
28.1.5 條件變量 585
28.1.6 條件變量函數(shù) 587
28.1.7 遞歸鎖和非遞歸鎖 591
28.1.8 初始化函數(shù) 591
28.1.9 _Thread_local 存儲(chǔ)類和線程存儲(chǔ)期 593
28.1.10 線程專屬存儲(chǔ) 595
28.1.11 線程專屬存儲(chǔ)函數(shù) 596
28.2 _Atomic、:原子類型和原子操作支持 599
28.2.1 _Atomic:類型指定符/類型限定符 600
28.2.2 標(biāo)準(zhǔn)庫定義的原子類型 600
28.2.3 初始化原子變量 601
28.2.4 原子變量的初始化函數(shù) 601
28.2.5 原子操作 602
28.2.6 原子操作函數(shù) 604
28.2.7 內(nèi)存順序 608
28.2.8 圍欄函數(shù) 613
28.2.9 鎖無關(guān)判斷函數(shù) 615
28.2.10 原子標(biāo)志類型及其操作函數(shù) 616
問與答 619
練習(xí)題 619
編程題 620
附錄A C語言運(yùn)算符 621
附錄B C1X與C99的比較 622
附錄C C99與C89的比較 624
附錄D C89與經(jīng)典C的比較 628
附錄E標(biāo)準(zhǔn)庫函數(shù) 631
附錄F ASCII字符集 673
延伸閱讀 674
索引(圖靈社區(qū)下載)
C語言程序設(shè)計(jì) 現(xiàn)代方法 第2版·修訂版 作者簡介
【作者簡介】K. N. 金(K. N. King)世界知名的計(jì)算機(jī)程序設(shè)計(jì)教育家。他擁有耶魯大學(xué)計(jì)算機(jī)科學(xué)碩士學(xué)位,加州大學(xué)伯克利分校計(jì)算機(jī)科學(xué)博士學(xué)位,曾任教于佐治亞理工學(xué)院和佐治亞州立大學(xué)。除本書外,他還撰寫了廣受歡迎的著作Modula-2: A Complete Guide和Java Programming: From the Beginning。【譯者簡介】呂秀鋒曾任教于北京理工大學(xué)軟件學(xué)院,講授過多門計(jì)算機(jī)課程,包括“計(jì)算機(jī)基礎(chǔ)(雙語)”“C語言程序設(shè)計(jì)(雙語)”“數(shù)據(jù)結(jié)構(gòu)”“程序設(shè)計(jì)開發(fā)與實(shí)踐”。黃倩河海大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系主任,兼任中國人工智能學(xué)會(huì)深度學(xué)習(xí)專委會(huì)委員、中國計(jì)算機(jī)學(xué)會(huì)多媒體技術(shù)專委會(huì)委員。博士畢業(yè)于中國科學(xué)院計(jì)算技術(shù)研究所,譯有《編程珠璣(第2版)》等。【審校簡介】李忠資深C語言專家。著有《穿越計(jì)算機(jī)的迷霧》《X86匯編語言:從實(shí)模式到保護(hù)模式》《C語言非常道》和《標(biāo)準(zhǔn)C語言指南》等。
- >
山海經(jīng)
- >
經(jīng)典常談
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
月亮與六便士
- >
上帝之肋:男人的真實(shí)旅程
- >
【精裝繪本】畫給孩子的中國神話
- >
有舍有得是人生
- >
二體千字文