 |
-- 會員 / 註冊 --
|
|
|
|
C和指針 ( 簡體 字) |
作者:[美]肯尼斯·里科(Kenneth Reek) | 類別:1. -> 程式設計 -> C -> C |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 53274 詢問書籍請說出此書號!【有庫存】 NT售價: 495 元 |
出版日:9/1/2020 |
頁數:441 |
光碟數:0 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115522689 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:《C和指針》提供與C語言編程相關的全面資源和深入討論。本書通過對指針的基礎知識和高級特性的探討,幫助程序員把指針的強大功能融入到自己的程序中去。 全書共18章,覆蓋了數據、語句、操作符和表達式、指針、函數、數組、字符串、結構和聯合等幾乎所有重要的C編程話題。書中給出了很多編程技巧和提示,每章后面有針對性很強的練習,附錄部分則給出了部分練習的解答。 《C和指針》適合C語言初學者和初級C程序員閱讀,也可作為計算機專業學生學習C語言的參考。 |
目錄:第 1章 快速上手 1 1.1 簡介 1 1.1.1 空白和注釋 4 1.1.2 預處理指令 4 1.1.3 main函數 5 1.1.4 read_column_numbers函數 8 1.1.5 rearrange函數 12 1.2 補充說明 14 1.3 編譯 14 1.4 總結 15 1.5 警告的總結 15 1.6 編程提示的總結 15 1.7 問題 16 1.8 編程練習 16 第 2章 基本概念 19 2.1 環境 19 2.1.1 翻譯 19 2.1.2 執行 21 2.2 詞法規則 21 2.2.1 字符 22 2.2.2 注釋 23 2.2.3 自由形式的源代碼 23 2.2.4 標識符 24 2.2.5 程序的形式 24 2.3 程序風格 25 2.4 總結 26 2.5 警告的總結 26 2.6 編程提示的總結 26 2.7 問題 27 2.8 編程練習 28 第3章 數據 29 3.1 基本數據類型 29 3.1.1 整型家族 29 3.1.2 浮點類型 32 3.1.3 指針 33 3.2 基本聲明 35 3.2.1 初始化 35 3.2.2 聲明簡單數組 36 3.2.3 聲明指針 36 3.2.4 隱式聲明 37 3.3 typedef 38 3.4 常量 38 3.5 作用域 39 3.5.1 代碼塊作用域 40 3.5.2 文件作用域 41 3.5.3 原型作用域 41 3.5.4 函數作用域 41 3.6 鏈接屬性 41 3.7 存儲類型 43 3.8 static關鍵字 44 3.9 作用域、存儲類型示例 45 3.10 總結 46 3.11 警告的總結 47 3.12 編程提示的總結 47 3.13 問題 48 第4章 語句 51 4.1 空語句 51 4.2 表達式語句 51 4.3 代碼塊 52 4.4 if語句 52 4.5 while語句 53 4.5.1 break和continue語句 54 4.5.2 while語句的執行過程 54 4.6 for語句 55 4.7 do語句 56 4.8 switch語句 57 4.8.1 switch中的break語句 58 4.8.2 default子句 59 4.8.3 switch語句的執行過程 59 4.9 goto語句 60 4.10 總結 61 4.11 警告的總結 62 4.12 編程提示的總結 62 4.13 問題 62 4.14 編程練習 63 第5章 操作符和表達式 67 5.1 操作符 67 5.1.1 算術操作符 67 5.1.2 移位操作符 67 5.1.3 位操作符 69 5.1.4 賦值操作符 70 5.1.5 單目操作符 72 5.1.6 關系操作符 73 5.1.7 邏輯操作符 74 5.1.8 條件操作符 75 5.1.9 逗號操作符 76 5.1.10 下標引用、函數調用和結構成員 77 5.2 布爾值 78 5.3 左值和右值 79 5.4 表達式求值 80 5.4.1 隱式類型轉換 80 5.4.2 算術轉換 80 5.4.3 操作符的屬性 81 5.4.4 優先級和求值的順序 82 5.5 總結 85 5.6 警告的總結 86 5.7 編程提示的總結 86 5.8 問題 86 5.9 編程練習 88 第6章 指針 91 6.1 內存和地址 91 6.2 值和類型 92 6.3 指針變量的內容 93 6.4 間接訪問操作符 94 6.5 未初始化和非法的指針 95 6.6 NULL指針 96 6.7 指針、間接訪問和左值 97 6.8 指針、間接訪問和變量 97 6.9 指針常量 98 6.10 指針的指針 98 6.11 指針表達式 99 6.12 實例 104 6.13 指針運算 107 6.13.1 算術運算 108 6.13.2 關系運算 110 6.14 總結 111 6.15 警告的總結 112 6.16 編程提示的總結 112 6.17 問題 112 6.18 編程練習 115 第7章 函數 117 7.1 函數定義 117 7.2 函數聲明 119 7.2.1 原型 119 7.2.2 函數的缺省認定 121 7.3 函數的參數 122 7.4 ADT和黑盒 124 7.5 遞歸 127 7.5.1 追蹤遞歸函數 128 7.5.2 遞歸與迭代 131 7.6 可變參數列表 134 7.6.1 stdarg宏 135 7.6.2 可變參數的限制 135 7.7 總結 136 7.8 警告的總結 137 7.9 編程提示的總結 137 7.10 問題 138 7.11 編程練習 138 第8章 數組 141 8.1 一維數組 141 8.1.1 數組名 141 8.1.2 下標引用 142 8.1.3 指針與下標 144 8.1.4 指針的效率 145 8.1.5 數組和指針 150 8.1.6 作為函數參數的數組名 150 8.1.7 聲明數組參數 152 8.1.8 初始化 152 8.1.9 不完整的初始化 153 8.1.10 自動計算數組長度 153 8.1.11 字符數組的初始化 153 8.2 多維數組 154 8.2.1 存儲順序 154 8.2.2 數組名 155 8.2.3 下標 156 8.2.4 指向數組的指針 158 8.2.5 作為函數參數的多維數組 159 8.2.6 初始化 160 8.2.7 數組長度自動計算 162 8.3 指針數組 162 8.4 總結 165 8.5 警告的總結 166 8.6 編程提示的總結 166 8.7 問題 166 8.8 編程練習 170 第9章 字符串、字符和字節 175 9.1 字符串基礎 175 9.2 字符串長度 175 9.3 不受限制的字符串函數 177 9.3.1 復制字符串 177 9.3.2 連接字符串 178 9.3.3 函數的返回值 178 9.3.4 字符串比較 178 9.4 長度受限的字符串函數 179 9.5 字符串查找基礎 180 9.5.1 查找一個字符 180 9.5.2 查找任何幾個字符 181 9.5.3 查找一個子串 181 9.6 高級字符串查找 182 9.6.1 查找一個字符串前綴 182 9.6.2 查找標記 182 9.7 錯誤信息 183 9.8 字符操作 184 9.8.1 字符分類 184 9.8.2 字符轉換 184 9.9 內存操作 185 9.10 總結 186 9.11 警告的總結 187 9.12 編程提示的總結 187 9.13 問題 187 9.14 編程練習 188 第 10章 結構和聯合 195 10.1 結構基礎知識 195 10.1.1 結構聲明 195 10.1.2 結構成員 197 10.1.3 結構成員的直接訪問 197 10.1.4 結構成員的間接訪問 198 10.1.5 結構的自引用 198 10.1.6 不完整的聲明 199 10.1.7 結構的初始化 199 10.2 結構、指針和成員 200 10.2.1 訪問指針 201 10.2.2 訪問結構 201 10.2.3 訪問結構成員 202 10.2.4 訪問嵌套的結構 203 10.2.5 訪問指針成員 204 10.3 結構的存儲分配 205 10.4 作為函數參數的結構 206 10.5 位段 209 10.6 聯合 211 10.6.1 變體記錄 212 10.6.2 聯合的初始化 213 10.7 總結 214 10.8 警告的總結 214 10.9 編程提示的總結 214 10.10 問題 215 10.11 編程練習 217 第 11章 動態內存分配 221 11.1 為什么使用動態內存分配 221 11.2 malloc和free 221 11.3 calloc和realloc 222 11.4 使用動態分配的內存 223 11.5 常見的動態內存錯誤 223 11.6 內存分配實例 226 11.7 總結 231 11.8 警告的總結 232 11.9 編程提示的總結 232 11.10 問題 232 11.11 編程練習 233 第 12章 使用結構和指針 235 12.1 鏈表 235 12.2 單鏈表 235 12.2.1 在單鏈表中插入 236 12.2.2 其他鏈表操作 245 12.3 雙鏈表 245 12.3.1 在雙鏈表中插入 246 12.3.2 其他鏈表操作 253 12.4 總結 253 12.5 警告的總結 254 12.6 編程提示的總結 254 12.7 問題 254 12.8 編程練習 255 第 13章 高級指針話題 257 13.1 進一步探討指向指針的指針 257 13.2 高級聲明 258 13.3 函數指針 260 13.3.1 回調函數 261 13.3.2 轉移表 263 13.4 命令行參數 265 13.4.1 傳遞命令行參數 265 13.4.2 處理命令行參數 266 13.5 字符串常量 269 13.6 總結 271 13.7 警告的總結 272 13.8 編程提示的總結 272 13.9 問題 272 13.10 編程練習 275 第 14章 預處理器 279 14.1 預定義符號 279 14.2 #define 279 14.2.1 宏 281 14.2.2 #define替換 282 14.2.3 宏與函數 283 14.2.4 帶副作用的宏參數 284 14.2.5 命名約定 285 14.2.6 #undef 285 14.2.7 命令行定義 285 14.3 條件編譯 286 14.3.1 是否被定義 287 14.3.2 嵌套指令 288 14.4 文件包含 288 14.4.1 函數庫文件包含 289 14.4.2 本地文件包含 289 14.4.3 嵌套文件包含 290 14.5 其他指令 291 14.6 總結 292 14.7 警告的總結 293 14.8 編程提示的總結 293 14.9 問題 293 14.10 編程練習 295 第 15章 輸入/輸出函數 297 15.1 錯誤報告 297 15.2 終止執行 298 15.3 標準I/O函數庫 298 15.4 ANSI I/O概念 299 15.4.1 流 299 15.4.2 文件 300 15.4.3 標準I/O常量 300 15.5 流I/O總覽 301 15.6 打開流 302 15.7 關閉流 303 15.8 字符I/O 304 15.8.1 字符I/O宏 305 15.8.2 撤銷字符I/O 305 15.9 未格式化的行I/O 306 15.10 格式化的行I/O 308 15.10.1 scanf家族 308 15.10.2 scanf格式代碼 308 15.10.3 printf家族 312 15.10.4 printf格式代碼 312 15.11 二進制I/O 316 15.12 刷新和定位函數 316 15.13 改變緩沖方式 318 15.14 流錯誤函數 319 15.15 臨時文件 319 15.16 文件操縱函數 319 15.17 總結 320 15.18 警告的總結 321 15.19 編程提示的總結 322 15.20 問題 322 15.21 編程練習 323 第 16章 標準函數庫 327 16.1 整型函數 327 16.1.1 算術 327 16.1.2 隨機數 328 16.1.3 字符串轉換 329 16.2 浮點型函數 329 16.2.1 三角函數 330 16.2.2 雙曲函數 330 16.2.3 對數和指數函數 330 16.2.4 浮點表示形式 331 16.2.5 冪 331 16.2.6 底數、頂數、絕對值和余數 331 16.2.7 字符串轉換 332 16.3 日期和時間函數 332 16.3.1 處理器時間 332 16.3.2 當天時間 332 16.3.3 日期和時間的轉換 333 16.4 非本地跳轉 335 16.4.1 實例 336 16.4.2 何時使用非本地跳轉 337 16.5 信號 338 16.5.1 信號名 338 16.5.2 處理信號 339 16.5.3 信號處理函數 340 16.6 打印可變參數列表 341 16.7 執行環境 342 16.7.1 終止執行 342 16.7.2 斷言 342 16.7.3 環境 343 16.7.4 執行系統命令 343 16.7.5 排序和查找 344 16.8 locale 346 16.8.1 數值和貨幣格式 346 16.8.2 字符串和locale 348 16.8.3 改變locale的效果 349 16.9 總結 349 16.10 警告的總結 350 16.11 編程提示的總結 351 16.12 問題 351 16.13 編程練習 352 第 17章 經典抽象數據類型 355 17.1 內存分配 355 17.2 堆棧 355 17.2.1 堆棧接口 356 17.2.2 實現堆棧 356 17.3 隊列 364 17.3.1 隊列接口 364 17.3.2 實現隊列 365 17.4 樹 369 17.4.1 在二叉搜索樹中插入 370 17.4.2 從二叉搜索樹刪除節點 370 17.4.3 在二叉搜索樹中查找 371 17.4.4 樹的遍歷 371 17.4.5 二叉搜索樹接口 372 17.4.6 實現二叉搜索樹 373 17.5 實現的改進 379 17.5.1 擁有超過一個的堆棧 379 17.5.2 擁有超過一種的類型 380 17.5.3 名字沖突 380 17.5.4 標準函數庫的ADT 381 17.6 總結 383 17.7 警告的總結 384 17.8 編程提示的總結 384 17.9 問題 384 17.10 編程練習 385 第 18章 運行時環境 387 18.1 判斷運行時環境 387 18.1.1 測試程序 387 18.1.2 靜態變量和初始化 390 18.1.3 堆棧幀 391 18.1.4 寄存器變量 391 18.1.5 外部標識符的長度 393 18.1.6 判斷堆棧幀布局 393 18.1.7 表達式的副作用 398 18.2 C和匯編語言的接口 399 18.3 運行時效率 400 18.4 總結 402 18.5 警告的總結 403 18.6 編程提示的總結 403 18.7 問題 403 18.8 編程練習 403 附錄 部分問題和編程練習的答案 405 |
序: |
|