中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
征服C指針 第2版

包郵 征服C指針 第2版

出版社:人民郵電出版社出版時間:2021-03-01
開本: 16開 頁數: 333
中 圖 價:¥69.3(7.0折) 定價  ¥99.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

征服C指針 第2版 版權信息

征服C指針 第2版 本書特色

本書以C語言中的重難點“指針”為主題,提供了程序員所需的深入而完整的指針知識。作者結合多年的編程經驗和感悟,從C指針的概念講起,通過實驗一步一步地揭示了指針和數組、內存、數據結構的關系,展現了指針的常見用法,揭示了各種使用技巧,還通過獨特的方式告訴讀者怎樣解讀C語言那些讓人“糾結”的聲明語法,以及如何繞過C指針的陷阱等。第2版基于64位操作系統對內容進行了大幅修訂,新增了對ISO-C99、C11標準下相關內容的介紹等。

本書非常適合C語言中級學習者閱讀,也可作為計算機專業學生學習C語言的參考。

征服C指針 第2版 內容簡介

本書以C語言中的重難點“指針”為主題,提供了程序員所需的深入而完整的指針知識。作者結合多年的編程經驗和感悟,從C指針的概念講起,通過實驗一步一步地揭示了指針和數組、內存、數據結構的關系,展現了指針的常見用法,揭示了各種使用技巧,還通過獨特的方式告訴讀者怎樣解讀C語言那些讓人“糾結”的聲明語法,以及如何繞過C指針的陷阱等。第2版基于64位操作系統對內容進行了大幅修訂,新增了對ISO-C99、C11標準下相關內容的介紹等。 本書很好適合C語言中級學習者閱讀,也可作為計算機專業學生學習C語言的參考。

征服C指針 第2版 目錄

第0章

本書目標與讀者對象 1

0-1 本書目標 2

0-2 讀者對象與內容結構 5



第 1章

打好基礎——預備知識和復習 9

1-1 C語言是什么樣的語言 10

1-1-1 C語言的發展歷程 10

是匯編語言還是匯編器 11

B語言是什么樣的語言 12

1-1-2 不完備和不統一的語法 13

1-1-3 C語言“圣經”——K&R 13

1-1-4 ANSI C之前的C語言 14

1-1-5 ANSI C(C89/90) 16

1-1-6 C95 16

1-1-7 C99 17

1-1-8 C11 18

1-1-9 C語言的理念 19

1-1-10 C語言的主體 20

1-1-11 C語言曾是只能使用標量的語言 21

1-2 內存和地址 23

1-2-1 內存和地址 23

1-2-2 內存和變量 25

size_t類型 27

1-2-3 內存和程序運行 27

1-3 關于指針 29

1-3-1 惡名昭著的指針究竟是什么 29

1-3-2 和指針的第 一次親密接觸 30

1-3-3 地址運算符、間接運算符、下標運算符 34

關于本書中的地址值——16進制表示法 35

混亂的聲明——如何自然地理解聲明 35

雜談:hoge是什么 37

1-3-4 指針和地址之間的微妙關系 38

在運行時既沒有類型信息,也沒有變量名 40

1-3-5 指針運算 41

1-3-6 何謂空指針 42

NULL和0和'\0' 43

1-3-7 實踐——從函數返回多個值 46

形參與實參 50

1-4 關于數組 51

1-4-1 使用數組 51

C語言的數組是從0開始的 53

1-4-2 數組與指針的微妙關系 54

1-4-3 下標運算符[]與數組毫無關系 56

語法糖 59

1-4-4 為何存在指針運算這種奇怪功能 59

1-4-5 別再濫用指針運算了 61

更改參數的做法可取嗎 62

1-4-6 試圖將數組作為函數參數傳遞 63

如果對數組進行值傳遞 65

1-4-7 聲明函數形參的方法 66

C語言為什么不進行數組邊界檢查 67

1-4-8 C99中的可變長數組 68



第 2章

做個實驗——C語言是怎樣使用內存的 71

2-1 虛擬地址 72

關于scanf() 75

未定義、未指定、實現定義 77

2-2 C語言中內存的使用方法 78

2-2-1 C語言中變量的種類 78

2-2-2 嘗試輸出地址 80

存儲類說明符 80

2-3 函數與字符串字面量 85

2-3-1 只讀內存區域 85

2-3-2 指向函數的指針 86

2-4 靜態變量 88

2-4-1 什么是靜態變量 88

2-4-2 分割編譯與鏈接 88

2-5 自動變量(棧) 91

2-5-1 內存空間的“重復使用” 91

2-5-2 函數調用究竟發生了什么 91

調用約定 95

2-5-3 自動變量的引用 95

一旦函數執行結束,自動變量的內存空間就會被釋放 98

2-5-4 典型的安全漏洞——緩沖區溢出漏洞 99

操作系統針對緩沖區溢出漏洞給出的對策 102

2-5-5 可變長參數 103

assert() 106

試寫一個用于調試的函數 107

2-5-6 遞歸調用 110

2-5-7 C99中的可變長數組(VLA)的棧 113

2-6 利用malloc()動態分配內存(堆) 116

2-6-1 malloc()的基礎知識 116

應該強制轉換malloc()的返回值類型嗎 119

2-6-2 malloc()是系統調用嗎 119

2-6-3 malloc()中發生了什么 120

2-6-4 free()之后相應的內存空間會怎樣 122

Valgrind 124

2-6-5 碎片化 124

2-6-6 malloc()以外的動態內存分配函數 125

假如malloc()參數為0 127

malloc()的返回值檢查 128

程序結束時也必須調用free()嗎 129

2-7 對齊 131

結構體的成員名稱在運行時也是缺失的 134

2-8 字節序 135

2-9 關于語言規范和實現——抱歉,前面的內容都是騙你的 137



第3章

語法揭秘——它到底是怎么回事 139

3-1 解讀C語言聲明 140

3-1-1 用英語閱讀 140

3-1-2 解讀C語言聲明 141

近來的語言多數是將類型后置的 144

3-1-3 類型名 145

如果把間接運算符*后置 146

3-2 C語言數據類型的模型 147

3-2-1 基本類型和派生類型 147

3-2-2 指針類型的派生 148

3-2-3 數組類型的派生 150

3-2-4 什么是指向數組的指針 150

3-2-5 C語言中不存在多維數組 152

3-2-6 函數類型的派生 154

3-2-7 計算類型的長度 155

3-2-8 基本類型 157

3-2-9 結構體和聯合體 159

3-2-10 不完全類型 159

3-3 表達式 162

3-3-1 表達式和數據類型 162

對“表達式”使用sizeof 164

3-3-2 什么是左值——變量的兩張面孔 166

“左值”的由來 167

3-3-3 數組→指針的轉換 168

3-3-4 與數組和指針相關的運算符 169

3-3-5 多維數組 171

運算符的優先級 173

3-4 解讀C語言聲明(續) 176

3-4-1 const修飾符 176

3-4-2 如何使用const?可以用到哪種程度 178

const可以代替#define嗎 181

3-4-3 typedef 181

3-5 其他 185

3-5-1 函數形參的聲明(ANSI C版) 185

K&R中關于函數形參聲明的說明 186

3-5-2 函數形參的聲明(C99版) 188

3-5-3 關于空的下標運算符[] 189

定義與聲明 191

3-5-4 字符串字面量 192

字符串字面量是char的數組 194

3-5-5 關于指向函數的指針引發的混亂 195

3-5-6 強制類型轉換 196

3-5-7 練習——解讀復雜聲明 198

3-6 請記。簲到M與指針截然不同 203

3-6-1 你為什么感到混亂 203

3-6-2 在表達式中 204

3-6-3 在聲明中 206



第4章

數組和指針的常見用法 209

4-1 基本用法 210

4-1-1 通過返回值以外的方法返回 210

4-1-2 將數組作為函數的參數傳遞 211

4-1-3 動態數組——通過malloc()分配的可變長數組 212

其他語言的數組 214

4-2 組合使用 216

4-2-1 動態數組的數組 216

寬字符 223

4-2-2 動態數組的動態數組 225

4-2-3 命令行參數 228

4-2-4 通過參數返回指針 230

什么是“雙指針” 235

4-2-5 將多維數組作為函數的參數傳遞 236

4-2-6 將多維數組作為函數的參數傳遞(VLA版) 237

4-2-7 通過malloc()分配縱橫可變的二維數組(C99) 239

C語言中的多維數組是行優先的 240

縱橫可變的二維數組的ANSI C實現 241

Java和C#的多維數組 242

4-2-8 數組的動態數組 243

4-2-9 在考慮可變之前,不妨考慮使用結構體 244

4-2-10 可變長結構體(ANSI C版) 246

關于分配可變長結構體時的長度指定 248

4-2-11 柔性數組成員(C99) 248

指針可以指向數組的*后一個元素的下一個元素 249



第5章

數據結構——指針的真正用法 251

5-1 案例學習1:計算單詞的使用頻率 252

5-1-1 案例的需求 252

各種語言中指針的叫法 253

引用傳遞 253

5-1-2 設計 256

關于頭文件的寫法 259

5-1-3 數組版 261

5-1-4 鏈表版 265

頭文件的公有和私有 271

當需要同時處理多個數據時 272

迭代器 273

5-1-5 添加查找功能 275

翻倍游戲 277

5-1-6 其他數據結構 277

5-2 案例學習2:繪圖工具的數據結構 283

5-2-1 案例的需求 283

5-2-2 表示各種圖形 284

關于坐標系 285

5-2-3 Shape類型 286

5-2-4 討論——還有其他方法嗎 289

能保存任何類型的鏈表 293

5-2-5 圖形的組合 294

5-2-6 通過指向函數的指針的數組分配處理 300

5-2-7 通往繼承與多態之路 302

將draw()放入Shape中真的好嗎 302

5-2-8 指針的可怕之處 304

5-2-9 那么,指針到底是什么呢 305



第6章

其他——拾遺 307

6-1 新的函數組 308

6-1-1 添加了范圍檢查的函數(C11) 308

restrict關鍵字 310

6-1-2 無須使用靜態存儲空間的函數(C11) 311

6-2 陷阱 314

6-2-1 整數提升 314

6-2-2 如果在(老式的)C語言中使用float類型的參數 316

6-2-3 printf()與scanf() 318

6-2-4 原型聲明的光與影 319

6-3 慣用寫法 321

6-3-1 結構體聲明 321

6-3-2 自引用結構體 322

6-3-3 結構體的相互引用 323

6-3-4 結構體的嵌套 324

6-3-5 聯合體 325

6-3-6 無名結構體和無名聯合體(C11) 326

6-3-7 數組的初始化 327

6-3-8 指向char的指針的數組的初始化 328

6-3-9 結構體的初始化 329

6-3-10 聯合體的初始化 330

6-3-11 指定初始化(C99) 331

6-3-12 復合字面量(C99) 332



參考文獻 334

展開全部

征服C指針 第2版 作者簡介

前橋和彌(作者) 1969年出生,著有《自制編程語言》《徹底掌握C語言》《Java之謎和陷阱》等,其一針見血的“毒舌”文風和對編程語言深刻的見地受到廣大讀者的歡迎。朱文佳(譯者) 2005年畢業于上海大學計算機科學與技術學院,在對日通信行業從事開發及管理十余年,具有豐富的嵌入式C語言開發及項目管理經驗。愛好閱讀,自學日語,愿盡自己綿薄之力為大家分享優秀的外國圖書。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 聚合氯化铝价格_聚合氯化铝厂家_pac絮凝剂-唐达净水官网 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 换链神器官网-友情链接交换、购买交易于一体的站长平台 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 大鼠骨髓内皮祖细胞-小鼠神经元-无锡欣润生物科技有限公司 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 |