C語言程序設計(第4版 修訂版) Programming in C, 4/e
[美] 史蒂芬·G.寇肯(Stephen G. Kochan)
- 出版商: 人民郵電
- 出版日期: 2025-01-01
- 定價: $599
- 售價: 8.5 折 $509
- 語言: 簡體中文
- 頁數: 378
- ISBN: 7115637407
- ISBN-13: 9787115637406
-
相關分類:
C 程式語言
- 此書翻譯自: Programming in C, 4/e (Paperback)
-
相關翻譯:
精通 C 程式設計, 4/e (Programming in C, 4/e) (繁中版)
下單後立即進貨 (約4週~6週)
商品描述
本書通過程序示例講解C語言的眾多概念、函數和編程方法,幫助初學者更好地掌握C語言編程的內容。
本書從C語言的基礎概念和編譯過程出發,詳細講解C語言的數據類型、算術表達式、循環語句、判斷語句、數組、函數、結構體、字符串、指針、位運算、預處理器、輸入輸出操作等,以及goto語句、聯合體、逗號運算符、限定符、命令行參數、動態內存分配、程序調試、面向對象程序設計等高級特性。此外,本書提供了大量練習題,幫助讀者鞏固實踐;並通過附錄提供C語言概要、標準C語言庫、使用GCC編譯程序、常見的編程錯誤、C語言編譯器和集成開發環境等內容。
本書適合想要零基礎入門C語言編程的讀者,也適合用作電腦等相關專業C語言課程的教學參考書。
作者簡介
史蒂芬·G. 寇肯(Stephen G. Kochan)具有30多年的C語言開發經驗。他曾是AT&T貝爾實驗室的軟件顧問,在那裡進行過UNIX和C語言程序的開發和授課。他撰寫了多本關於編程和UNIX的經典圖書,包括《Objective-C程序設計(第6版)》和《UNIX/Linux/OS X中的Shell編程(第4版)》等。
目錄大綱
第 1章 一些基礎概念 1
1.1 程序設計 1
1.2 高級語言 1
1.3 操作系統 2
1.4 編譯程序 2
1.5 集成開發環境 4
1.6 語言解釋器 5
第 2章 編譯並運行你的第 一個程序 6
2.1 編譯你的程序 6
2.2 運行你的程序 7
2.3 理解你的第 一個程序 7
2.4 顯示變量的值 9
2.5 註釋 11
2.6 練習題 12
第3章 變量、數據類型和算術表達式 14
3.1 理解數據類型和常量 14
3.1.1 整數類型int 14
3.1.2 浮點數類型float 15
3.1.3 擴展精度類型double 16
3.1.4 單字符類型char 16
3.1.5 布爾數據類型_Bool 16
3.1.6 類型說明符:long、long long、short、unsigned和signed 18
3.2 使用變量 20
3.3 使用算術表達式 21
3.4 運算與賦值結合:賦值運算符 27
3.5 _Complex和_Imaginary類型 28
3.6 練習題 28
第4章 程序循環 30
4.1 三角數 30
4.2 for語句 31
4.2.1 關系運算符 32
4.2.2 輸出對齊 35
4.3 程序輸入 36
4.3.1 嵌套的for循環 37
4.3.2 for循環的變體 39
4.4 while語句 40
4.5 do語句 43
4.5.1 break語句 44
4.5.2 continue語句 44
4.6 練習題 45
第5章 做出決策 47
5.1 if語句 47
5.1.1 if-else結構 50
5.1.2 復合關系測試 52
5.1.3 嵌套if語句 54
5.1.4 else if結構 55
5.2 switch語句 61
5.3 布爾變量 63
5.4 條件運算符 66
5.5 練習題 68
第6章 使用數組 70
6.1 定義一個數組 70
6.1.1 使用數組元素作為計數器 73
6.1.2 生成斐波那契數 75
6.1.3 使用數組生成素數 76
6.2 初始化數組 78
6.3 字符數組 79
6.3.1 使用數組的基數變換 80
6.3.2 const限定符 82
6.4 多維數組 83
6.5 變長數組 85
6.6 練習題 86
第7章 使用函數 88
7.1 定義一個函數 88
7.2 參數和局部變量 91
7.2.1 函數原型聲明 91
7.2.2 自動局部變量 92
7.3 返回函數結果 93
7.4 函數調用 97
7.4.1 聲明返回類型和參數類型 99
7.4.2 檢查函數參數 100
7.5 自頂向下編程技術 101
7.6 函數與數組 102
7.6.1 賦值運算符 105
7.6.2 數組排序 106
7.6.3 多維數組 108
7.7 全局變量 112
7.8 自動變量與靜態變量 115
7.9 遞歸函數 117
7.10 練習題 119
第8章 使用結構體 121
8.1 結構體的基礎知識 121
8.2 用於存儲日期的結構體 121
8.3 函數與結構體 125
8.4 初始化結構體 132
8.5 結構體數組 133
8.6 包含結構體的結構體 136
8.7 包含數組的結構體 138
8.8 結構體變體 140
8.9 練習題 141
第9章 字符串 143
9.1 復習字符串的基礎知識 143
9.2 字符數組 143
9.3 變長字符串 145
9.3.1 字符串的初始化與顯示 147
9.3.2 判斷兩個字符串是否相等 149
9.3.3 輸入字符串 150
9.3.4 輸入單個字符 152
9.3.5 空字符串 156
9.4 轉義字符 158
9.5 關於字符串常量的更多內容 160
9.6 字符串、結構體和數組 161
9.7 字符操作 167
9.8 練習題 169
第 10章 指針 172
10.1 指針和間接性 172
10.2 定義一個指針變量 172
10.3 在表達式中使用指針 175
10.4 使用指針和數據結構 176
10.4.1 包含指針的結構體 178
10.4.2 鏈表 179
10.5 關鍵字const和指針 185
10.6 指針和函數 186
10.7 指針和數組 191
10.7.1 稍許離題:程序優化 194
10.7.2 是數組還是指針? 194
10.7.3 指向字符串的指針 195
10.7.4 字符串常量和指針 196
10.7.5 回顧遞增和遞減運算符 198
10.8 指針操作 200
10.9 指向函數的指針 201
10.10 指針和內存地址 202
10.11 練習題 203
第 11章 位運算 205
11.1 位的基礎知識 205
11.2 位運算符 206
11.2.1 按位與運算符 206
11.2.2 按位或運算符 208
11.2.3 按位異或運算符 209
11.2.4 二進制求補運算符 209
11.2.5 左移運算符 211
11.2.6 右移運算符 211
11.2.7 移位函數 212
11.2.8 循環移位 213
11.3 位域 215
11.4 練習題 218
第 12章 預處理器 220
12.1 #define語句 220
12.1.1 程序的可擴展性 223
12.1.2 程序的可移植性 224
12.1.3 更高級的定義類型 225
12.1.4 #運算符 229
12.1.5 ##運算符 230
12.2 #include語句 231
12.3 條件編譯 233
12.3.1 #ifdef、#endif、#else和#ifndef語句 233
12.3.2 #if和#elif預處理器語句 234
12.3.3 #undef語句 235
12.4 練習題 236
第 13章 用枚舉數據類型、類型定義及數據類型轉換以擴展數據類型 237
13.1 枚舉數據類型 237
13.2 typedef語句 240
13.3 數據類型轉換 242
13.3.1 符號擴展 243
13.3.2 參數轉換 243
13.4 練習題 244
第 14章 處理大型程序 245
14.1 將你的程序分為多個文件 245
14.2 模塊之間的通信 247
14.2.1 外部變量 247
14.2.2 靜態、外部變量和函數的對比 249
14.2.3 有效地使用頭文件 251
14.3 其他處理大型程序的工具 252
14.3.1 make工具 252
14.3.2 CVS工具 254
14.3.3 UNIX工具:ar、grep、sed等命令 254
第 15章 C語言中的輸入與輸出操作 255
15.1 字符I/O:getchar()與putchar() 255
15.2 格式化I/O:printf()與scanf() 255
15.2.1 printf()函數 256
15.2.2 scanf()函數 261
15.3 文件的輸入和輸出操作 264
15.3.1 將I/O重定向到文件 264
15.3.2 文件末尾 266
15.4 處理文件的特殊函數 267
15.4.1 fopen()函數 267
15.4.2 getc()和putc()函數 268
15.4.3 fclose()函數 269
15.4.4 feof()函數 270
15.4.5 fprintf()和fscanf()函數 271
15.4.6 fgets()和fputs()函數 271
15.4.7 stdin、stdout和stderr 272
15.4.8 exit()函數 272
15.4.9 重命名和刪除文件 273
15.5 練習題 273
第 16章 其他內容及高級特性 275
16.1 其他語言語句 275
16.1.1 goto語句 275
16.1.2 空語句 275
16.2 使用聯合體 276
16.3 逗號運算符 279
16.4 類型限定符 279
16.4.1 register限定符 279
16.4.2 volatile限定符 280
16.4.3 restrict限定符 280
16.5 命令行參數 280
16.6 動態內存分配 283
16.6.1 calloc()和malloc()函數 284
16.6.2 sizeof運算符 284
16.6.3 free()函數 286
16.7 練習題 287
第 17章 調試程序 288
17.1 使用預處理器調試 288
17.2 用GDB調試程序 293
17.2.1 處理變量 295
17.2.2 顯示源文件 296
17.2.3 控製程序的執行 296
17.2.4 獲得堆棧信息 300
17.2.5 調用函數以及設置數組和結構體 301
17.2.6 使用GDB命令獲取幫助信息 301
17.2.7 其他 303
第 18章 面向對象程序設計 305
18.1 到底什麽是對象? 305
18.2 實例和方法 306
18.3 編寫一個處理分數的C語言程序 307
18.4 定義一個Objective-C類來處理分數 307
18.5 定義一個C++類來處理分數 311
18.6 定義一個C#類來處理分數 313
附錄A C語言概要 316
A.1 雙字符序列與標識符 316
A.1.1 雙字符序列 316
A.1.2 標識符 316
A.2 註釋 317
A.3 常量 317
A.3.1 整型常量 317
A.3.2 浮點型常量 318
A.3.3 字符型常量 318
A.3.4 字符串常量 319
A.3.5 枚舉常量 319
A.4 數據類型和聲明 320
A.4.1 聲明 320
A.4.2 基本數據類型 320
A.4.3 派生數據類型 321
A.4.4 枚舉數據類型 326
A.4.5 typedef語句 326
A.4.6 類型限定符const、volatile和restrict 327
A.5 表達式 327
A.5.1 C語言運算符總結 328
A.5.2 常量表達式 329
A.5.3 算術運算符 330
A.5.4 邏輯運算符 330
A.5.5 關系運算符 331
A.5.6 位運算符 331
A.5.7 遞增和遞減運算符 331
A.5.8 賦值運算符 332
A.5.9 條件運算符 332
A.5.10 類型轉換運算符 332
A.5.11 sizeof運算符 332
A.5.12 逗號運算符 333
A.5.13 數組的基本操作 333
A.5.14 結構體的基本操作 333
A.5.15 指針的基本操作 334
A.5.16 復合字面量 335
A.5.17 基本數據類型的轉換 335
A.6 存儲類和作用域 336
A.6.1 函數 336
A.6.2 變量 336
A.7 函數 337
A.7.1 函數定義 337
A.7.2 函數調用 338
A.7.3 函數指針 338
A.8 語句 339
A.8.1 復合語句 339
A.8.2 break語句 339
A.8.3 continue語句 339
A.8.4 do語句 339
A.8.5 for語句 339
A.8.6 goto語句 340
A.8.7 if語句 340
A.8.8 空語句 341
A.8.9 return語句 341
A.8.10 switch語句 341
A.8.11 while語句 342
A.9 預處理器 342
A.9.1 三字符組 342
A.9.2 預處理器指令 343
A.9.3 預定義標識符 346
附錄B 標準C語言庫 347
B.1 標準頭文件 347
B.1.1
B.1.2
B.1.3
B.1.4
B.1.5
B.2 字符串函數 349
B.3 內存函數 351
B.4 字符函數 352
B.5 I/O函數 353
B.6 內存中的格式轉換函數 357
B.7 字符串轉換為數字 358
B.8 動態內存分配函數 359
B.9 數學函數 360
B.10 通用函數 368
附錄C 使用GCC編譯程序 371
C.1 通用命令格式 371
C.2 命令行選項 371
附錄D 常見的程序錯誤 373
附錄E 參考資源 377
E.1 C語言 377
E.1.1 圖書 377
E.1.2 網站 377
E.1.3 網絡論壇 377
E.2 C語言編譯器和集成開發環境 377
E.2.1 GCC 378
E.2.2 MinGW 378
E.2.3 Cygwin 378
E.2.4 Visual Studio 378
E.2.5 CodeWarrior 378
E.2.6 Code::Blocks 378