C和指針

C和指針

《C和指針》提供與C語言編程相關的全面資源和深入討論。《C和指針》通過對指針的基礎知識和高級特性的探討,幫助程式設計師把指針的強大功能融入到自己的程式中去。全書共18章,復蓋了數據、語句、操作符和表達式、指針、函式、數組、字元串、結構和聯合等幾乎所有重要的C編程話題。書中給出了很多編程技巧和提示,每章後面有針對性很強的練習,附錄部分則給出了部分練習的解答。

基本信息

基本內容

內容簡介《C和指針》提供與C語言編程相關的全面資源和深入討論。《C和指針》通過對指針的基礎知識和高級特性的探討,幫助程式設計師把指針的強大功能融入到自己的程式中去。全書共18章,復蓋了數據、語句、操作符和表達式、指針、函式、數組、字元串、結構和聯合等幾乎所有重要的C編程話題。書中給出了很多編程技巧和提示,每章後面有針對性很強的練習,附錄部分則給出了部分練習的解答。

目錄

第1章快速上手

1.1簡介

1.1.1空白和注釋

1.1.2預處理指令

1.1.3main函式

1.1.4read_column_numbers函式

1.1.5rearrange函式

1.2補充說明

1.3編譯

1.4總結

1.5警告的總結

1.6編程提示的總結

1.7問題

1.8編程練習

第2章基本概念

2.1環境

2.1.1翻譯

2.1.2執行

2.2詞法規則

2.2.1字元

2.2.2注釋

2.2.3自由形式的原始碼

2.2.4標識符

2.2.5程式的形式

2.3程式風格

2.4總結

2.5警告的總結

2.6編程提示的總結

2.7問題

2.8編程練習

第3章數據

3.1基本數據類型

3.1.1整型家族

3.1.2浮點類型

3.1.3指針

3.2基本聲明

3.2.1初始化

3.2.2聲明簡單數組

3.2.3聲明指針

3.2.4隱式聲明

3.3typedef

3.4常量

3.5作用域

3.5.1代碼塊作用域

3.5.2檔案作用域

3.5.3原型作用域

3.5.4函式作用域

3.6連結屬性

3.7存儲類型

3.8static關鍵字

3.9作用域、存儲類型示例

3.10總結

3.11警告的總結

3.12編程提示的總結

3.13問題

第4章語句

4.1空語句

4.2表達式語句

4.3代碼塊

4.4if語句

4.5while語句

4.5.1break和continue語句

4.5.2while語句的執行過程

4.6for語句

4.7do語句

4.8switch語句

4.8.1switch中的break語句

4.8.2default子句

4.8.3switch語句的執行過程

4.9goto語句

4.10總結

4.11警告的總結

4.12編程提示的總結

4.13問題

4.14編程練習

第5章操作符和表達式

5.1操作符

5.1.1算術操作符

5.1.2移位操作符

5.1.3位操作符

5.1.4賦值

5.1.5單目操作符

5.1.6關係操作符

5.1.7邏輯操作符

5.1.8條件操作符

5.1.9逗號操作符

5.1.10下標引用、函式調用和結構成員

5.2布爾值

5.3左值和右值

5.4表達式求值

5.4.1隱式類型轉換

5.4.2算術轉換

5.4.3操作符的屬性

5.4.4優先權和求值的順序

5.5總結

5.6警告的總結

5.7編程提示的總結

5.8問題

5.9編程練習

第6章指針

6.1記憶體和地址

6.2值和類型

6.3指針變數的內容

6.4間接訪問操作符

6.5未初始化和非法的指針

6.6NULL指針

6.7指針、間接訪問和左值

6.8指針、間接訪問和變數

6.9指針常量

6.10指針的指針

6.11指針表達式

6.12實例

6.13指針運算

6.13.1算術運算

6.13.2關係運算

6.14總結

6.15警告的總結

6.16編程提示的總結

6.17問題

6.18編程練習

第7章函式

7.1函式定義

7.2函式聲明

7.2.1原型

7.2.2函式的預設認定

7.3函式的參數

7.4ADT和黑盒

7.5遞歸

7.5.1追蹤遞歸函式

7.5.2遞歸與疊代

7.6可變參數列表

7.6.1stdarg宏

7.6.2可變參數的限制

7.7總結

7.8警告的總結

7.9編程提示的總結

7.10問題

7.11編程練習

第8章數組

8.1一維數組

8.1.1數組名

8.1.2下標引用

8.1.3指針與下標

8.1.4指針的效率

8.1.5數組和指針

8.1.6作為函式參數的數組名

8.1.7聲明數組參數

8.1.8初始化

8.1.9不完整的初始化

8.1.10自動計算數組長度

8.1.11字元數組的初始化

8.2多維數組

8.2.1存儲順序

8.2.2數組名

8.2.3下標

8.2.4指向數組的指針

8.2.5作為函式參數的多維數組

8.2.6初始化

8.2.7數組長度自動計算

8.3指針數組

8.4總結

8.5警告的總結

8.6編程提示的總結

8.7問題

8.8編程練習

第9章字元串、字元和位元組

9.1字元串基礎

9.2字元串長度

9.3不受限制的字元串函式

9.3.1複製字元串

9.3.2連線字元串

9.3.3函式的返回值

9.3.4字元串比較

9.4長度受限的字元串函式

9.5字元串查找基礎

9.5.1查找一個字元

9.5.2查找任何幾個字元

9.5.3查找一個子串

9.6高級字元串查找

9.6.1查找一個字元串前綴

9.6.2查找標記

9.7錯誤信息

9.8字元操作

9.8.1字元分類

9.8.2字元轉換

9.9記憶體操作

9.10總結

9.11警告的總結

9.12編程提示的總結

9.13問題

9.14編程練習

第10章結構和聯合

10.1結構基礎知識

10.1.1結構聲明

10.1.2結構成員

10.1.3結構成員的直接訪問

10.1.4結構成員的間接訪問

10.1.5結構的自引用

10.1.6不完整的聲明

10.1.7結構的初始化

10.2結構、指針和成員

10.2.1訪問指針

10.2.2訪問結構

10.2.3訪問結構成員

10.2.4訪問嵌套的結構

10.2.5訪問指針成員

10.3結構的存儲分配

10.4作為函式參數的結構

10.5位段

10.6聯合

10.6.1變體記錄

10.6.2聯合的初始化

10.7總結

10.8警告的總結

10.9編程提示的總結

10.10問題

10.11編程練習

第11章動態記憶體分配

11.1為什麼使用動態記憶體分配

11.2malloc和free

11.3calloc和realloc

11.4使用動態分配的記憶體

11.5常見的動態記憶體錯誤

11.6記憶體分配實例

11.7總結

11.8警告的總結

11.9編程提示的總結

11.10問題

11.11編程練習

第12章使用結構和指針

12.1鍊表

12.2單鍊表

12.2.1在單鍊表中插入

12.2.2其他鍊表操作

12.3雙鍊表

12.3.1在雙鍊表中插入

12.3.2其他鍊表操作

12.4總結

12.5警告的總結

12.6編程提示的總結

12.7問題

12.8編程練習

第13章高級指針話題

13.1進一步探討指向指針的指針

13.2高級聲明

13.3函式指針

13.3.1回調函式

13.3.2轉移表

13.4命令行參數

13.4.1傳遞命令行參數

13.4.2處理命令行參數

13.5字元串常量

13.6總結

13.7警告的總結

13.8編程提示的總結

13.9問題

13.10編程練習

第14章預處理器

14.1預定義符號

14.2#define

14.2.1宏

14.2.2#define替換

14.2.3宏與函式

14.2.4帶副作用的宏參數

14.2.5命名約定

14.2.6#undef

14.2.7命令行定義

14.3條件編譯

14.3.1是否被定義

14.3.2嵌套指令

14.4檔案包含

14.4.1函式館檔案包含

14.4.2本地檔案包含

14.4.3嵌套檔案包含

14.5其他指令

14.6總結

14.7警告的總結

14.8編程提示的總結

14.9問題

14.10編程練習

第15章輸入/輸出函式

15.1錯誤報告

15.2終止執行

15.3標準I/O函式館

15.4ANSI I/O概念

15.4.1流

15.4.2檔案

15.4.3標準I/O常量

15.5流I/O總覽

15.6打開流

15.7關閉流

15.8字元I/O

15.8.1字元I/O宏

15.8.2撤銷字元I/O

15.9未格式化的行I/O

15.10格式化的行I/O

15.10.1scanf家族

15.10.2scanf格式代碼

15.10.3printf家族

15.10.4printf格式代碼

15.11二進制I/O

15.12刷新和定位函式

15.13改變緩衝方式

15.14流錯誤函式

15.15臨時檔案

15.16檔案操縱函式

15.17總結

15.18警告的總結

15.19編程提示的總結

15.20問題

15.21編程練習

第16章標準函式館

16.1整型函式

16.1.1算術

16.1.2隨機數

16.1.3字元串轉換

16.2浮點型函式

16.2.1三角函式

16.2.2雙曲函式

16.2.3對數和指數函式

16.2.4浮點表示形式

16.2.5冪

16.2.6底數、頂數、絕對值和餘數

16.2.7字元串轉換

16.3日期和時間函式

16.3.1處理器時間

16.3.2當天時間

16.4非本地跳轉

16.4.1實例

16.4.2何時使用非本地跳轉

16.5信號

16.5.1信號名

16.5.2處理信號

16.5.3信號處理函式

16.6列印可變參數列表

16.7執行環境

16.7.1終止執行

16.7.2斷言

16.7.3環境

16.7.4執行系統命令

16.7.5排序和查找

16.8locale

16.8.1數值和貨幣格式

16.8.2字元串和locale

16.8.3改變locale的效果

16.9總結

16.10警告的總結

16.11編程提示的總結

16.12問題

16.13編程練習

第17章經典抽象數據類型

17.1記憶體分配

17.2堆疊

17.2.1堆疊接口

17.2.2實現堆疊

17.3佇列

17.3.1佇列接口

17.3.2實現佇列

17.4樹

17.4.1在二叉搜尋樹中插入

17.4.2從二叉搜尋樹刪除節點

17.4.3在二叉搜尋樹中查找

17.4.4樹的遍歷

17.4.5二叉搜尋樹接口

17.4.6實現二叉搜尋樹

17.5實現的改進

17.5.1擁有超過一個的堆疊

17.5.2擁有超過一種的類型

17.5.3名字衝突

17.5.4標準函式館的ADT

17.6總結

17.7警告的總結

17.8編程提示的總結

17.9問題

17.10編程練習

第18章運行時環境

18.1判斷運行時環境

18.1.1測試程式

18.1.2靜態變數和初始化

18.1.3堆疊幀

18.1.4暫存器變數

18.1.5外部標識符的長度

18.1.6判斷堆疊幀布局

18.1.7表達式的副作用

18.2C和彙編語言的接口

18.3運行時效率

18.4總結

18.5警告的總結

18.6編程提示的總結

18.7問題

18.8編程練習

附錄部分問題答案

索引

編輯推薦

《C和指針(英文版)》提供與C語言編程相關的全面資源和深入討論,通過對指針的基礎知識和高級特性的探討,幫助程式設計師把指針的強大功能融入到自己的程式中去。《C和指針(英文版)》適合C語言初學者和初級C程式設計師閱讀,也可作為計算機專業學生學習C語言的參考。

作者簡介

Kenneth Reek是羅徹斯特理工大學計算機科學教授。他是一位經驗豐富的C程式設計師,曾為多家公司擔任過技術顧問。他講授的課程有作業系統、數據通信、計算機網路、形式語言、算法分析和交換系統等。本書正是基於他9年的編程及教學的經驗積累。

名人推薦

我竭盡全力地推薦這本我所見過的最好的C編程入門圖書。作者深知讀者所需,並為他們打下良好基礎。如果你已經開始學習C語言但始終不得要領,不妨試一試《C和指針(英文版)》。

——Francis Glassborow,ACCU主席

相關詞條

相關搜尋

熱門詞條

聯絡我們