基本內容
內容簡介《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主席