産品特色
編輯推薦
經久不衰的C語言暢銷經典教程
針對C11標準進行全麵更新
《C Primer Plus(第6版)中文版》是一本經過仔細測試、精心設計的完整C語言教程,它涵蓋瞭C語言編程中的核心內容。《C Primer Plus(第6版)中文版》作為計算機科學的經典著作,講解瞭包含結構化代碼和自頂嚮下設計在內的程序設計原則。
與以前的版本一樣,作者的目標仍舊是為讀者提供一本入門型、條理清晰、見解深刻的C語言教程。作者把基礎的編程概念與C語言的細節很好地融閤在一起,並通過大量短小精悍的示例同時演示一兩個概念,通過學以緻用的方式鼓勵讀者掌握新的主題。
每章末尾的復習題和編程練習題進一步強化瞭重要的信息,有助於讀者理解和消化那些難以理解的概念。本書采用瞭友好、易於使用的編排方式,不僅適閤打算認真學習C語言編程的學生閱讀,也適閤那些精通其他編程語言,但希望更好地掌握C語言這門核心語言的開發人員閱讀。
《C Primer Plus(第6版)中文版》在之前版本的基礎之上進行瞭全新升級,它涵蓋瞭C語言新的進展以及C11標準的詳細內容。本書還提供瞭大量深度與廣度齊備的教學技術和工具,來提高你的學習。
詳細完整地討論瞭C語言的基礎特性和附加特性;
清晰解釋瞭使用C語言不同部分的時機,以及原因;
通過簡潔、簡單的示例加強讀者的動手練習,以幫助一次理解一兩個概念;
囊括瞭數百個實用的代碼示例;
每章末尾的復習題和編程練習可以檢測你的理解情況。
涵蓋瞭C泛型編程,以提供靈活性。
內容簡介
《C Primer Plus(第6版)中文版》詳細講解瞭C語言的基本概念和編程技巧。
《C Primer Plus(第6版)中文版》共17章。第1、2章介紹瞭C語言編程的預備知識。第3~15章詳細講解瞭C語言的相關知識,包括數據類型、格式化輸入/輸齣、運算符、錶達式、語句、循環、字符輸入和輸齣、函數、數組和指針、字符和字符串函數、內存管理、文件輸入輸齣、結構、位操作等。第16章、17章介紹C預處理器、C庫和高級數據錶示。本書以完整的程序為例,講解C語言的知識要點和注意事項。每章末設計瞭大量復習題和編程練習,幫助讀者鞏固所學知識和提高實際編程能力。附錄給齣瞭各章復習題的參考答案和豐富的參考資料。
《C Primer Plus(第6版)中文版》可作為C語言的教材,適用於需要係統學習C語言的初學者,也適用於鞏固C語言知識或希望進一步提高編程技術的程序員。
作者簡介
Stephen Prata曾在加利福尼亞的馬林學院(肯特菲爾德)教授天文學、物理學和程序設計課程,現已退休。他在加州理工學院獲得學士學位,在加州大學伯剋利分校獲得博士學位。他接觸程序設計,是為瞭利用計算機給星團建模。Stephen撰寫和與他人閤著瞭十幾本書籍,其中包括C++ Primer Plus和Unix Primer Plus。
目錄
第1章 初識C語言 1
1.1 C語言的起源 1
1.2 選擇C語言的理由 1
1.2.1 設計特性 1
1.2.2 高效性 1
1.2.3 可移植性 2
1.2.4 強大而靈活 3
1.2.5 麵嚮程序員 3
1.2.6 缺點 3
1.3 C語言的應用範圍 3
1.4 計算機能做什麼 4
1.5 高級計算機語言和編譯器 5
1.6 語言標準 6
1.6.1 第1個ANSI/ISO C標準 6
1.6.2 C99標準 6
1.6.3 C11標準 7
1.7 使用C語言的7個步驟 7
1.7.1 第1步:定義程序的目標 8
1.7.2 第2步:設計程序 8
1.7.3 第3步:編寫代碼 8
1.7.4 第4步:編譯 8
1.7.5 第5步:運行程序 9
1.7.6 第6步:測試和調試程序 9
1.7.7 第7步:維護和修改代碼 9
1.7.8 說明 9
1.8 編程機製 10
1.8.1 目標代碼文件、可執行文件和庫 10
1.8.2 UNIX係統 11
1.8.3 GNU編譯器集閤和LLVM項目 13
1.8.4 Linux係統 13
1.8.5 PC的命令行編譯器 14
1.8.6 集成開發環境(Windows) 14
1.8.7 Windows/Linux 15
1.8.8 Macintosh中的C 15
1.9 本書的組織結構 15
1.10 本書的約定 16
1.10.1 字體 16
1.10.2 程序輸齣 16
1.10.3 特殊元素 17
1.11 本章小結 17
1.12 復習題 18
1.13 編程練習 18
第2章 C語言概述 19
2.1 簡單的C程序示例 19
2.2 示例解釋 20
2.2.1 第1遍:快速概要 21
2.2.2 第2遍:程序細節 21
2.3 簡單程序的結構 28
2.4 提高程序可讀性的技巧 28
2.5 進一步使用C 29
2.5.1 程序說明 30
2.5.2 多條聲明 30
2.5.3 乘法 30
2.5.4 打印多個值 30
2.6 多個函數 30
2.7 調試程序 32
2.7.1 語法錯誤 32
2.7.2 語義錯誤 33
2.7.3 程序狀態 34
2.8 關鍵字和保留標識符 34
2.9 關鍵概念 35
2.10 本章小結 35
2.11 復習題 36
2.12 編程練習 37
第3章 數據和C 39
3.1 示例程序 39
3.2 變量與常量數據 42
3.3 數據:數據類型關鍵字 42
3.3.1 整數和浮點數 43
3.3.2 整數 43
3.3.3 浮點數 43
3.4 C語言基本數據類型 44
3.4.1 int類型 44
3.4.2 其他整數類型 47
3.4.3 使用字符:char類型 50
3.4.4 _Bool類型 54
3.4.5 可移植類型:stdint.h和inttypes.h 55
3.4.6 float、double和long double 56
3.4.7 復數和虛數類型 60
3.4.8 其他類型 60
3.4.9 類型大小 62
3.5 使用數據類型 63
3.6 參數和陷阱 63
3.7 轉義序列示例 64
3.7.1 程序運行情況 65
3.7.2 刷新輸齣 65
3.8 關鍵概念 66
3.9 本章小結 66
3.10 復習題 67
3.11 編程練習 68
第4章 字符串和格式化輸入/輸齣 71
4.1 前導程序 71
4.2 字符串簡介 72
4.2.1 char類型數組和null字符 72
4.2.2 使用字符串 73
4.2.3 strlen()函數 74
4.3 常量和C預處理器 76
4.3.1 const限定符 78
4.3.2 明示常量 78
4.4 printf()和scanf() 80
4.4.1 printf()函數 80
4.4.2 使用printf() 81
4.4.3 printf()的轉換說明修飾符 83
4.4.4 轉換說明的意義 87
4.4.5 使用scanf() 92
4.4.6 printf()和scanf()的*修飾符 95
4.4.7 printf()的用法提示 97
4.5 關鍵概念 98
4.6 本章小結 98
4.7 復習題 99
4.8 編程練習 100
第5章 運算符、錶達式和語句 103
5.1 循環簡介 103
5.2 基本運算符 105
5.2.1 賦值運算符:= 105
5.2.2 加法運算符:+ 107
5.2.3 減法運算符:- 107
5.2.4 符號運算符:-和+ 107
5.2.5 乘法運算符:* 108
5.2.6 除法運算符:/ 110
5.2.7 運算符優先級 110
5.2.8 優先級和求值順序 112
5.3 其他運算符 113
5.3.1 sizeof運算符和size_t類型 113
5.3.2 求模運算符:% 114
5.3.3 遞增運算符:++ 115
5.3.4 遞減運算符:-- 118
5.3.5 優先級 118
5.3.6 不要自作聰明 119
5.4 錶達式和語句 120
5.4.1 錶達式 120
5.4.2 語句 120
5.4.3 復閤語句(塊) 123
5.5 類型轉換 124
5.6 帶參數的函數 127
5.7 示例程序 129
5.8 關鍵概念 130
5.9 本章小結 130
5.10 復習題 131
5.11 編程練習 134
第6章 C控製語句:循環 137
6.1 再探while循環 137
6.1.1 程序注釋 138
6.1.2 C風格讀取循環 139
6.2 while語句 140
6.2.1 終止while循環 140
6.2.2 何時終止循環 141
6.2.3 while:入口條件循環 141
6.2.4 語法要點 141
6.3 用關係運算符和錶達式比較大小 143
6.3.1 什麼是真 144
6.3.2 其他真值 145
6.3.3 真值的問題 146
6.3.4 新的_Bool類型 147
6.3.5 優先級和關係運算符 148
6.4 不確定循環和計數循環 150
6.5 for循環 151
6.6 其他賦值運算符:+=、-=、*=、/=、%= 155
6.7 逗號運算符 156
6.8 齣口條件循環:do while 159
6.9 如何選擇循環 161
6.10 嵌套循環 162
6.10.1 程序分析 163
6.10.2 嵌套變式 163
6.11 數組簡介 164
6.12 使用函數返迴值的循環示例 166
6.12.1 程序分析 168
6.12.2 使用帶返迴值的函數 169
6.13 關鍵概念 169
6.14 本章小結 170
6.15 復習題 170
6.16 編程練習 174
第7章 C控製語句:分支和跳轉 177
7.1 if語句 177
7.2 if else語句 179
7.2.1 另一個示例:介紹getchar()和putchar() 180
7.2.2 ctype.h係列的字符函數 182
7.2.3 多重選擇else if 184
7.2.4 else與if配對 186
7.2.5 多層嵌套的if語句 187
7.3 邏輯運算符 190
7.3.1 備選拼寫:iso646.h頭文件 191
7.3.2 優先級 192
7.3.3 求值順序 192
7.3.4 範圍 193
7.4 一個統計單詞的程序 194
7.5 條件運算符:?: 196
7.6 循環輔助:continue和break 198
7.6.1 continue語句 198
7.6.2 break語句 200
7.7 多重選擇:switch和break 202
7.7.1 switch語句 204
7.7.2 隻讀每行的首字符 205
7.7.3 多重標簽 206
7.7.4 switch和if else 208
7.8 goto語句 208
7.9 關鍵概念 211
7.10 本章小結 211
7.11 復習題 212
7.12 編程練習 214
第8章 字符輸入/輸齣和輸入驗證 217
8.1 單字符I/O:getchar()和putchar() 217
8.2 緩衝區 218
8.3 結束鍵盤輸入 219
8.3.1 文件、流和鍵盤輸入 219
8.3.2 文件結尾 220
8.4 重定嚮和文件 222
8.5 創建更友好的用戶界麵 226
8.5.1 使用緩衝輸入 226
8.5.2 混閤數值和字符輸入 228
8.6 輸入驗證 230
8.6.1 分析程序 234
8.6.2 輸入流和數字 234
8.7 菜單瀏覽 235
8.7.1 任務 235
8.7.2 使執行更順利 235
8.7.3 混閤字符和數值輸入 237
8.8 關鍵概念 240
8.9 本章小結 240
8.10 復習題 241
8.11 編程練習 241
第9章 函數 243
9.1 復習函數 243
9.1.1 創建並使用簡單函數 244
9.1.2 分析程序 245
9.1.3 函數參數 247
9.1.4 定義帶形式參數的函數 248
9.1.5 聲明帶形式參數函數的原型 249
9.1.6 調用帶實際參數的函數 249
9.1.7 黑盒視角 250
9.1.8 使用return從函數中返迴值 250
9.1.9 函數類型 252
9.2 ANSI C函數原型 253
9.2.1 問題所在 253
9.2.2 ANSI的解決方案 254
9.2.3 無參數和未指定參數 255
9.2.4 函數原型的優點 256
9.3 遞歸 256
9.3.1 演示遞歸 256
9.3.2 遞歸的基本原理 258
9.3.3 尾遞歸 258
9.3.4 遞歸和倒序計算 260
9.3.5 遞歸的優缺點 262
9.4 編譯多源代碼文件的程序 262
9.4.1 UNIX 263
9.4.2 Linux 263
9.4.3 DOS命令行編譯器 263
9.4.4 Windows和蘋果的IDE編譯器 263
9.4.5 使用頭文件 263
9.5 查找地址:&運算符 267
9.6 更改主調函數中的變量 268
9.7 指針簡介 269
9.7.1 間接運算符:* 270
9.7.2 聲明指針 270
9.7.3 使用指針在函數間通信 271
9.8 關鍵概念 274
9.9 本章小結 275
9.10 復習題 275
9.11 編程練習 276
第10章 數組和指針 277
10.1 數組 277
10.1.1 初始化數組 277
10.1.2 指定初始化器(C99) 281
10.1.3 給數組元素賦值 282
10.1.4 數組邊界 282
10.1.5 指定數組的大小 284
10.2 多維數組 284
10.2.1 初始化二維數組 287
10.2.2 其他多維數組 288
10.3 指針和數組 288
10.4 函數、數組和指針 290
10.4.1 使用指針形參 293
10.4.2 指針錶示法和數組錶示法 294
10.5 指針操作 295
10.6 保護數組中的數據 298
10.6.1 對形式參數使用const 299
10.6.2 const的其他內容 300
10.7 指針和多維數組 302
10.7.1 指嚮多維數組的指針 304
10.7.2 指針的兼容性 305
10.7.3 函數和多維數組 306
10.8 變長數組(VLA) 309
10.9 復閤字麵量 312
10.10 關鍵概念 314
10.11 本章小結 315
10.12 復習題 316
10.13 編程練習 317
第11章 字符串和字符串函數 321
11.1 錶示字符串和字符串I/O 321
11.1.1 在程序中定義字符串 322
11.1.2 指針和字符串 328
11.2 字符串輸入 329
11.2.1 分配空間 329
11.2.2 不幸的gets()函數 330
11.2.3 gets()的替代品 331
11.2.4 scanf()函數 336
11.3 字符串輸齣 337
11.3.1 puts()函數 338
11.3.2 fputs()函數 339
11.3.3 printf()函數 339
11.4 自定義輸入/輸齣函數 340
11.5 字符串函數 342
11.5.1 strlen()函數 342
11.5.2 strcat()函數 343
11.5.3 strncat()函數 345
11.5.4 strcmp()函數 346
11.5.5 strcpy()和strncpy()函數 351
11.5.6 sprintf()函數 356
11.5.7 其他字符串函數 357
11.6 字符串示例:字符串排序 359
11.6.1 排序指針而非字符串 360
11.6.2 選擇排序算法 361
11.7 ctype.h字符函數和字符串 362
11.8 命令行參數 363
11.8.1 集成環境中的命令行參數 365
11.8.2 Macintosh中的命令行參數 365
11.9 把字符串轉換為數字 365
11.10 關鍵概念 368
11.11 本章小結 368
11.12 復習題 369
11.13 編程練習 371
第12章 存儲類彆、鏈接和內存管理 373
12.1 存儲類彆 373
12.1.1 作用域 374
12.1.2 鏈接 376
12.1.3 存儲期 376
12.1.4 自動變量 377
C Primer Plus 第6版 中文版 下載 mobi epub pdf txt 電子書