C語言程式設計(第4版)[賈洪峰編著書籍]

C語言程式設計(第4版)[賈洪峰編著書籍]

《C語言程式設計(第4版)》是2015年5月電子工業出版社出版的圖書,作者是史蒂芬.寇肯(Stephen G. Kochan)。

內容簡介

本書全面介紹了C語言的各種特性,包括C11中增加的內容。書中包含大量完整的示例及詳細的講解。無論是否擁有編程經驗,你都可以通過本書透徹地理解C語言。每章最後附有習題,便於課堂學習或自學。

圖書目錄

前言 1

1 基礎知識 5

2 編譯和運行第一個程式 13

3 變數、數據類型和算術表達式 23

4 程式循環 45

5 做出決策 69

6 使用數組 101

7 使用函式 127

8 使用結構體 175

9 字元串 205

10 指針 247

11 位運算 295

12 預處理器 317

13 用枚舉數據類型、類型定義和數據類型轉換擴展數據類型 341

14 處理大型程式 353

15 C語言中的輸入與輸出操作 369

16 其他及高級特性 397

17 調試程式 415

18 面向對象程式設計 437

附錄A C語言概要 453

附錄B 標準C語言庫 497

附錄C 用gcc編譯程式 525

附錄D 常見編程錯誤 527

附錄E 資源 533

目錄

前言 1

1 基礎知識 5

程式設計 5

高級語言 6

作業系統 7

編譯程式 7

集成開發環境 10

語言解釋器 11

2 編譯和運行第一個程式 13

編譯程式 14

運行程式 14

理解第一個程式 15

顯示變數的值 17

注釋 19

練習 21

3 變數、數據類型和算術表達式 23

理解數據類型和常量 23

整數類型int 24

浮點數值類型float 25

擴展精度類型double 26

單字元類型char 26

布爾數據類型_Bool 27

類型說明符:long、long long、short、unsigned和signed 28

使用變數 31

使用算術表達式 33

整數算術及一元減運算符 36

運算與賦值相結合:賦值運算符 42

_Complex和_Imaginary類型 43

練習 43

4 程式循環 45

三角數 45

for語句 46

關係運算符 48

輸出的對齊 52

程式輸入 53

嵌套for循環 55

for循環的變體 57

while語句 59

do語句 63

break語句 65

continue語句 65

練習 66

5 做出決策 69

if語句 69

if-else構造 73

複合關係測試 76

嵌套if語句 79

else if構造 81

switch語句 88

布爾變數 91

條件運算符 96

練習 97

6 使用數組 101

定義數組 102

以數組元素為計數器 106

生成斐波那契數 109

用數組生成質數 111

初始化數組 113

字元數組 115

使用數組的基數變換 116

const限定符 118

多維數組 120

變長數組 122

練習 124

7 使用函式 127

定義函式 127

參數和局部變數 131

函式原型聲明 132

自動局部變數 132

返回函式結果 134

函式調用 139

聲明返回類型和參數類型 142

檢查函式參數 144

自上而下的程式設計 146

函式與數組 146

賦值運算符 151

數組排序 152

多維數組 155

全局變數 161

自動變數與靜態變數 165

遞歸函式 168

練習 171

8 使用結構體 175

結構體的基礎知識 175

用於存儲日期的結構體 176

在表達式中使用結構體 178

函式與結構體 181

用於存儲時間的結構體 187

初始化結構體 190

複合字面量 191

結構體的數組 192

包含結構體的結構體 196

包含數組的結構體 198

結構體變體 202

練習 203

9 字元串 205

複習字元串的基礎知識 205

字元數組 206

變長字元串 209

字元串的初始化與顯示 211

判斷兩個字元串是否相等 214

輸入字元串 216

單字元輸入 219

空字元串 224

轉義字元 228

再論常量字元串 230

字元串、結構體和數組 231

一種更好的搜尋方法 235

字元操作 240

練習 243

10 指針 247

指針和間接性 247

定義指針變數 248

在表達式中使用指針 252

使用指針和結構體 253

包含指針的結構體 256

鍊表 258

關鍵字const和指針 266

指針和函式 267

指針和數組 273

稍許離題:程式最佳化 277

是數組還是指針? 278

指向字元串的指針 280

常量字元串和指針 282

遞增和遞減運算符回顧 283

指針操作 287

指向函式的指針 288

指針和記憶體地址 289

練習 291

11 位運算 295

位的基礎知識 295

位運算符 297

按位與運算符 297

按位或運算符 300

按位異或運算符 301

二進制求補運算符 301

左移運算符 304

右移運算符 304

移位函式 305

循環移位 307

位段 309

練習 314

12 預處理器 317

#define語句 317

程式可擴展性 322

程式可移植性 323

更高級的定義類型 324

#運算符 330

##運算符 331

#include語句 332

系統包含檔案 335

條件編譯 335

#ifdef、#endif、#else和#ifndef語句 336

#if和#elif預處理器語句 338

#undef語句 339

練習 339

13 用枚舉數據類型、類型定義和數據類型轉換擴展數據類型 341

枚舉數據類型 341

typedef語句 345

數據類型轉換 348

符號擴展 350

參數轉換 350

練習 351

14 處理大型程式 353

將程式分為多個檔案 353

由命令行編譯多個源檔案 354

模組之間的通信 356

外部變數 357

靜態、動態變數與函式 359

有效使用頭檔案 362

其他處理大型程式的實用工具 364

make實用工具 364

cvs實用工具 366

Unix實用工具:ar、grep、sed等 366

15 C語言中的輸入與輸出操作 369

字元I/O:getchar()和putchar() 369

格式化I/O:printf()和scanf() 370

printf()函式 370

scanf()函式 377

檔案輸入與輸出操作 382

將I/O重定向到檔案 382

檔案尾 385

處理檔案的特殊函式 386

fopen函式 387

getc()和putc()函式 389

fclose()函式 389

feof函式 391

fprintf()和fscanf()函式 392

fgets()和fputs()函式 392

stdin、stdout和stderr 393

exit()函式 394

重命名和刪除檔案 395

練習 396

16 其他及高級特性 397

其他語言語句 397

goto語句 397

空語句 398

使用聯合體 399

逗號運算符 402

類型限定符 403

register限定符 403

volatile限定符 403

restrict限定符 404

命令行參數 404

動態記憶體分配 408

calloc()和malloc()函式 409

sizeof運算符 410

free函式 413

練習 414

17 調試程式 415

用預處理器調試 415

用gdb調試程式 422

處理變數 425

源檔案顯示 426

控制程式的執行 427

獲得棧軌跡 432

調試函式,設定數組和結構體 432

用gdb命令獲取幫助 433

雜項 435

18 面向對象程式設計 437

到底什麼是對象? 437

實例與方法 438

編寫一個處理分數的C程式 440

定義一個處理分數的Objective-C類 441

定義一個處理分數的C++類 446

定義一個處理分數的C#類 448

附錄A C語言概要 453

1.0 雙字元組和標識符 453

2.0 注釋 454

3.0 常量 455

4.0 數據類型和聲明 458

5.0 表達式 469

6.0 存儲類和作用域 482

7.0 函式 483

8.0 語句 486

9.0 預處理器 490

附錄B 標準C語言庫 497

標準頭檔案 497

字元串函式 500

記憶體函式 502

字元函式 503

I/O函式 503

記憶體中的格式轉換函式 509

字元串轉換為數字 510

動態記憶體分配函式 512

數學函式 513

複數運算 519

通用函式 521

附錄C 用gcc編譯程式 525

通用命令格式 525

命令行選項 526

附錄D 常見編程錯誤 527

附錄E 資源 533

C程式設計語言 533

C編譯器和集成開發環境 534

其他 535

熱門詞條

聯絡我們