第1章 入門 1
第2章 基礎知識 5
程序設計 5
高級編程語言 6
操作系統(tǒng) 6
編譯程序 7
集成開發(fā)環(huán)境 10
解釋型語言 10
第3章 編譯并運行第一個程序 11
編譯我們的第一個程序 11
運行我們的第一個程序 12
理解我們的第一個程序 13
顯示變量的值 15
注釋 17
練習 19
第4章 變量、數(shù)據類型和算術表達式 21
使用變量 21
數(shù)據類型與常量 23
基本整數(shù)類型 int 23
存儲空間與范圍 24
浮點數(shù)類型 float 24
擴展精度的浮點類型 double 25
字符類型 char 25
布爾類型 _Bool 26
類型修飾符:long, long long, short, unsigned和signed 28
使用算數(shù)表達式 30
整數(shù)算術和單目減法操作符 33
余數(shù)操作符 35
整型數(shù)與浮點數(shù)之間的轉換 36
結合運算和賦值:運算賦值操作符 38
類型 _Complex和_Imaginary 39
練習 40
第5章 循環(huán) 43
for語句 44
關系操作符 46
對齊輸出 50
程序輸入 51
嵌套的for循環(huán) 53
for循環(huán)的變體 54
while語句 56
do語句 60
break語句 62
continue語句 62
練習 63
第6章 進行判斷 65
if語句 65
if - else結構 69
復合關系表達式 72
嵌套的if語句 75
else if 結構 76
switch語句 84
布爾變量 87
條件操作符 91
練習 93
第7章 使用數(shù)組 95
定義數(shù)組 96
使用數(shù)組計數(shù) 100
產生Fibonacci數(shù) 103
使用數(shù)組產生質數(shù) 104
數(shù)組初始化 106
字符數(shù)組 108
使用數(shù)組完成基數(shù)轉換 109
const修飾符 111
多維數(shù)組 113
變量長度的數(shù)組 115
練習 117
第8章 使用函數(shù) 119
定義函數(shù) 119
參數(shù)與局部變量 122
函數(shù)原型聲明 124
自動局部變量 124
函數(shù)的返回值 126
函數(shù)調用…… 131
聲明返回值類型以及參數(shù)類型 134
檢查函數(shù)的參數(shù) 135
自頂向下的程序設計 137
函數(shù)與數(shù)組 137
賦值表達式 142
數(shù)組排序 143
多維數(shù)組 146
函數(shù)與可變長度的多維數(shù)組 150
全局變量 152
自動變量和靜態(tài)變量 156
遞歸函數(shù) 159
練習 162
第9章 使用結構 165
用于存儲日期的結構 166
在表達式中使用結構 168
函數(shù)與結構 171
用于存儲時間的結構 177
結構的初始化 180
復合字面量 181
結構數(shù)組 182
包含結構的結構 185
包含數(shù)組的結構 187
結構的變形形式 190
練習 191
第10章 字符串 195
字符數(shù)組 196
可變長度的字符串 198
字符串的初始化和顯示 201
檢驗字符串相等 204
輸入字符串 206
單字符輸入 208
空字符串 213
轉義字符 216
關于字符串常量的進一步討論 218
字符串、結構與數(shù)組 219
一個更好的搜索算法 222
字符運算 227
練習 230
第11章 指針 235
定義指針變量 235
在表達式中運用指針 239
使用指針和結構 240
包含指針的結構 243
鏈表 244
關鍵字const和指針 253
指針和函數(shù) 254
指針和數(shù)組 259
稍微離題一下--關于程序的優(yōu)化 263
數(shù)組還是指針 264
指向字符串的指針 266
字符串常量和指針 267
再次談談遞增和遞減運算符 268
指針運算 272
指向函數(shù)的指針 273
指針和內存地址 274
練習 276
第12章 位運算 279
位運算符 280
按位與運算符(&) 281
按位或運算符(|) 283
按位異或運算符(^) 284
取反運算符(~) 285
左移運算符(<<) 287
右移運算符(>>) 287
移位函數(shù) 288
旋轉移位 290
位域 292
練習 297
第13章 預處理器 299
#define語句 299
程序的可擴展性 303
程序的可移植性 305
預定義符號的高級形式 306
#操作符 312
##操作符 313
#include語句 313
系統(tǒng)頭文件 316
條件編譯 316
#ifdef、#endif、#else和#ifndef語句 316
#if和#elif語句 318
#undef語句 319
練習 320
第14章 進一步討論數(shù)據類型 321
枚舉類型 321
typedef語句 325
數(shù)據類型轉換 327
符號擴展 329
參數(shù)轉換 329
練習 330
第15章 處理大型程序 333
將程序分為多個文件 333
在命令行上編譯多個源文件 334
模塊之間的通信 336
外部變量 336
靜態(tài)變量與外部變量/函數(shù) 339
有效的使用頭文件 341
用于處理大型程序的其他工具 342
make 343
cvs 344
Unix的其他工具:ar、grep、sed等等 345
第16章 C語言的輸入輸出 347
字符I/O:getchar函數(shù)和putchar函數(shù) 348
格式化I/O:printf函數(shù)和scanf函數(shù) 348
printf函數(shù) 348
scanf函數(shù) 355
文件輸入輸出操作 359
將I/O操作重定向到文件中 359
文件結束標志 361
用于讀寫文件的特殊函數(shù) 363
fopen函數(shù) 363
getc和putc函數(shù) 365
fclose函數(shù) 365
函數(shù)feof 367
fprintf函數(shù)和fscanf函數(shù) 368
fgets函數(shù)和fputs函數(shù) 368
標準輸入stdin、標準輸出stdout和標準錯誤stderr 369
exit函數(shù) 370
重命名和刪除文件 371
練習 371
第17章 雜項和高級特性 373
雜項語句 373
goto語句 373
空語句 374
使用聯(lián)合 375
逗號操作符 378
類型修飾符 378
register修飾符 378
volatile修飾符 379
restrict修飾符 379
命令行參數(shù) 380
動態(tài)內存分配 383
malloc和calloc函數(shù) 384
sizeof操作符 385
free函數(shù) 387
第18章 調試程序 389
使用預處理器嵌入調試語句 389
使用gdb調試程序 395
查看和設置變量 398
顯示源文件 399
控制程序的執(zhí)行 400
查看調用堆棧 405
調用函數(shù)和給數(shù)組、結構變量賦值 405
獲取gdb的命令幫助 406
其他零碎的東西 408
第19章 面向對象編程 411
什么是對象 411
實例和方法 412
編寫處理分數(shù)的C語言程序 413
使用Objective-C定義用于處理分數(shù)的類 414
使用C++編寫分數(shù)類 419
使用C#語言處理分數(shù) 422
附錄A C語言小結 425
1.0 字元和標識符 425
1.1 字元 425
1.2 標識符 425
2.0 注釋 426
3.0 常量 427
3.1 整數(shù)常量 427
3.2 浮點數(shù)常量 427
3.3 字符常量 428
3.4 字符串常量 429
3.5 枚舉常量 430
4.0 數(shù)據類型與聲明 430
4.1 聲明 430
4.2 基本數(shù)據類型 430
4.3 導出數(shù)據類型 432
4.4 枚舉數(shù)據類型 438
4.5 typedef語句 438
4.6 類型修識符const、volatile和restrict 439
5.0 表達式 439
5.1 C語言的操作符總結 440
5.2 常量表達式 442
5.3 算術操作符 443
5.4 邏輯操作符 444
5.5 關系操作符 444
5.6 位操作符 445
5.7 自增和自減操作符 445
5.8 賦值操作符 446
5.9 條件操作符 446
5.10 類型轉換操作符 446
5.11 sizeof操作符 447
5.12 逗號操作符 447
5.13 數(shù)組的基本操作 447
5.14 結構的基本操作 448
5.15 指針的基本操作 448
5.16 復合字面量 450
5.17 基本數(shù)據類型的轉換規(guī)則 451
6.0 存儲類型與作用域 452
6.1 函數(shù) 452
6.2 變量 452
7.0 函數(shù) 454
7.1 函數(shù)定義 454
7.2 函數(shù)調用 455
7.3 函數(shù)指針 456
8.0 語句 456
8.1 復合語句 456
8.2 break語句 456
8.3 continue語句 457
8.4 do語句 457
8.5 for語句 457
8.6 goto語句 458
8.7 if語句 458
8.8 空語句 458
8.9 return語句 459
8.10 switch語句 459
8.11 while語句 460
9.0 預處理器 460
9.1 三元組 460
9.2 預處理器指令 461
9.3 預定義符號 466
附錄B C語言標準庫 467
標準頭文件 467
<stddef.h> 467
<limits.h> 468
<stdbool.h> 469
<float.h> 469
<stdint.h> 469
字符串函數(shù) 470
內存函數(shù) 472
字符函數(shù) 473
輸入輸出函數(shù) 473
內存中的格式轉換函數(shù) 478
字符串到數(shù)字的轉換 479
動態(tài)內存分配函數(shù) 481
數(shù)學函數(shù) 482
復數(shù)算術 488
通用函數(shù) 490
附錄C 使用gcc編譯程序 493
命令的一般格式 493
命令行選項 494
附錄D 常見編程錯誤 497
附錄E C語言的其他資源 501
練習題答案和勘誤表 501
C語言 501
書籍 501
網站 502
新聞組 502
C語言編譯器和集成開發(fā)環(huán)境 502
gcc 502
MinGW 502
CygWin 502
Visual Studio 503
Code Warrior 503
Kylix 503
雜項 503
面向對象編程 503
C++編程語言 503
C#編程語言 503
Objective-C 編程語言 504
開發(fā)工具 504
索引 505