征服C指针

出版社:人民邮电出版社
出版日期:2013-2
ISBN:9787115301215
作者:前桥和弥
页数:254页

作者简介

《图灵程序设计丛书:征服C指针》被称为日本最有营养的C参考书。作者是日本著名的“毒舌程序员”,其言辞犀利,观点鲜明,往往能让读者迅速领悟要领。书中结合了作者多年的编程经验和感悟,从C语言指针的概念讲起,通过实验一步一步地为我们解释了指针和数组、内存、数据结构的关系,展现了指针的常见用法,揭示了各种使用技巧。另外,还通过独特的方式教会我们怎样解读C语言那些让人“纠结”的声明语法,如何绕过C指针的陷阱。

书籍目录

第0章  本书的目标与结构——引言  1
0.1  本书的目标  1
0.2  目标读者和内容结构  3
第1章  从基础开始——预备知识和复习  7
1.1  C是什么样的语言  7
1.1.1  比喻  7
1.1.2  C的发展历程  8
1.1.3  不完备和不统一的语法  9
1.1.4  ANSI C  10
1.1.5  C的宝典——K&R  11
1.1.6  C的理念  12
1.1.7  C的主体  14
1.1.8  C是只能使用标量的语言  15
1.2  关于指针  16
1.2.1  恶名昭著的指针究竟是什么  16
1.2.2  和指针的第一次亲密接触  17
1.2.3  指针和地址之间的微妙关系  23
1.2.4  指针运算  26
1.2.5  什么是空指针  27
1.2.6  实践——swap函数  31
1.3  关于数组  34
1.3.1  运用数组  34
1.3.2  数组和指针的微妙关系  37
1.3.3  下标运算符[]和数组是没有关系的  39
1.3.4  为什么存在奇怪的指针运算  42
1.3.5  不要滥用指针运算  43
1.3.6  试图将数组作为函数的参数进行传递  45
1.3.7  声明函数形参的方法  48
第2章  做个实验见分晓——C是怎么使用内存的  51
2.1  虚拟地址  51
2.2  C的内存的使用方法  56
2.2.1  C的变量的种类  56
2.2.2  输出地址  58
2.3  函数和字符串常量  61
2.3.1  只读内存区域  61
2.3.2  指向函数的指针  62
2.4  静态变量  64
2.4.1  什么是静态变量  64
2.4.2  分割编译和连接  64
2.5  自动变量(栈)  66
2.5.1  内存区域的“重复使用”  66
2.5.2  函数调用究竟发生了什么  66
2.5.3  可变长参数  73
2.5.4  递归调用  80
2.6  利用malloc()来进行动态内存分配(堆)  84
2.6.1  malloc()的基础  84
2.6.2  malloc()是“系统调用”吗  88
2.6.3  malloc()中发生了什么  89
2.6.4  free()之后,对应的内存区域会怎样  91
2.6.5  碎片化  93
2.6.6  malloc()以外的动态内存分配函数  94
2.7  内存布局对齐  98
2.8  字节排序  101
2.9  关于开发语言的标准和实现——对不起,前面的内容都是忽悠的  102
第3章  揭秘C的语法——它到底是怎么回事  105
3.1  解读C的声明  105
3.1.1  用英语来阅读  105
3.1.2  解读C的声明  106
3.1.3  类型名  109
3.2  C的数据类型的模型  111
3.2.1  基本类型和派生类型  111
3.2.2  指针类型派生  112
3.2.3  数组类型派生  113
3.2.4  什么是指向数组的指针  114
3.2.5  C语言中不存在多维数组!  116
3.2.6  函数类型派生  117
3.2.7  计算类型的大小  119
3.2.8  基本类型  121
3.2.9  结构体和共用体  122
3.2.10  不完全类型  123
3.3  表达式  125
3.3.1  表达式和数据类型  125
3.3.2  “左值”是什么——变量的两张面孔  129
3.3.3  将数组解读成指针  130
3.3.4  数组和指针相关的运算符  132
3.3.5  多维数组  133
3.4  解读C的声明(续)  137
3.4.1  const修饰符  137
3.4.2  如何使用const?可以使用到什么程度?  139
3.4.3  typedef  141
3.5  其他  143
3.5.1  函数的形参的声明  143
3.5.2  关于空的下标运算符[]  146
3.5.3  字符串常量  148
3.5.4  关于指向函数的指针引起的混乱  151
3.5.5  强制类型转换  152
3.5.6  练习——挑战那些复杂的声明  153
3.6  应该记住:数组和指针是不同的事物  157
3.6.1  为什么会引起混乱  157
3.6.2  表达式之中  158
3.6.3  声明  160
第4章  数组和指针的常用方法  161
4.1  基本的使用方法  161
4.1.1  以函数返回值之外的方式来返回值  161
4.1.2  将数组作为函数的参数传递  162
4.1.3  可变长数组  163
4.2  组合使用  166
4.2.1  可变长数组的数组  166
4.2.2  可变长数组的可变长数组  172
4.2.3  命令行参数  174
4.2.4  通过参数返回指针  177
4.2.5  将多维数组作为函数的参数传递  181
4.2.6  数组的可变长数组  182
4.2.7  纠结于“可变”之前,不妨考虑使用结构体  183
4.3  违反标准的技巧  187
4.3.1  可变长结构体  187
4.3.2  从1开始的数组  189
第5章  数据结构——真正的指针的使用方法  193
5.1  案例学习1:计算单词的出现频率  193
5.1.1  案例的需求  193
5.1.2  设计  195
5.1.3  数组版  200
5.1.4  链表版  203
5.1.5  追加检索功能  211
5.1.6  其他的数据结构  214
5.2  案例学习2:绘图工具的数据结构  218
5.2.1  案例的需求  218
5.2.2  实现各种图形的数据模型  219
5.2.3  Shape型  221
5.2.4  讨论——还有别的方法吗  223
5.2.5  图形的组合  228
5.2.6  继承和多态之道  233
5.2.7  对指针的恐惧  236
5.2.8  说到底,指针究竟是什么  237
第6章  其他——拾遗  239
6.1  陷阱  239
6.1.1  关于strncpy()  239
6.1.2  如果在早期的C中使用float类型的参数  240
6.1.3  printf()和scanf()  242
6.1.4  原型声明的光和影  243
6.2  惯用句法  245
6.2.1  结构体声明  245
6.2.2  自引用型结构体  246
6.2.3  结构体的相互引用  247
6.2.4  结构体的嵌套  248
6.2.5  共用体  249
6.2.6  数组的初始化  250
6.2.7  char数组的初始化  250
6.2.8  指向char的指针的数组的初始化  251
6.2.9  结构体的初始化  252
6.2.10  共用体的初始化  252
6.2.11  全局变量的声明  253

编辑推荐

书中结合开发人员多年的编程经验和感悟,介绍了指针在数组中的应用、在函数中的应用、指向指针的指针、数据结构中指针的应用,指向文件类型的指针、指针在c语言算法中的应用,覆盖了所有重要的C编程话题,并给出了很多编程技巧和提示。

内容概要

前桥和弥(Maebasi Kazuya)
1969年出生,著有《彻底掌握C语言》、《Java之谜和陷阱》、《自己设计编程语言》等。其一针见血的“毒舌”文风和对编程语言深刻的见地受到广大读者的欢迎。作者主页:http://kmaebashi.com/。

章节摘录

版权页:   插图:   空指针确保它和任何非空指针进行比较都不会相等,因此经常作为函数发生异常时的返回值使用。另外,对于第5章的链表来说,也经常在数据的末尾放上一个空指针来提示:“请注意,后面已经没有元素了哦。” 在如今的操作系统下,应用程序一旦试图通过空指针引用对象,就会马上招致一个异常并且当前应用程序会被操作系统强制终止。因此,如果每次都使用NULL来初始化指针变量,在错误地使用了无效(未初始化)的指针时,我们就可以马上发现潜在的bug。 通常,我们可以根据指针指向的数据类型来明确地区别指针的类型。如果将“指向int的指针”赋给“指向double的指针”,如今的编译器会报出前面提到的警告。但是,只有NULL,无论对方指向什么类型的变量,都可以被赋值和比较。 偶尔会见到先将空指针强制转型,然后进行赋值、比较操作的程序,这不但是徒劳的,甚至还会让程序变得难以阅读。


 征服C指针下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     买《征服C指针》之前犹豫了一下:因为不确定内容如何。但是最后还是买了,因为书的名字实在霸气:既然敢用“征服”,肯定还是有干货的。用一天的时候看完了这本书,简单的做个评价:1.之所以一天就能看完,是因为书中关于C语言以及指针的内容在之前看过的其他书中基本上都见过。2.书中确实有作者对指针的理解,但是个人觉得作者太希望发表自己的见解了:首先,对于书中作者的一些假设性的提问(个人觉得应该是作者自己想的,起到一个引导作用吧),对于初学者来说可能会存在类似的问题,但是对于有经验的C程序员来说,个人觉得绝大多数不会出现类似的问题。其次,对于C语言来说,本身争议非常多,可以发表自己的理解和观点,但是必须要说明其中的利弊,我觉得这方面本书有待进一步改进。3.本书的名字叫《征服C指针》,我觉得改成类似于《关于C语言和指针的一点理解》更合适。在阅读本书之前,我希望看到的是:比较深入地对指针进行探讨和研究。但是本书在内容上比较散、杂,根本谈不上征服(也许这么些是为了提高销售,至少我被书名吸引住了)。看到最后,感觉作者什么方面都想介绍一点,但都不是很深入:整本书中很多地方都把C和Java做比,而且还会涉及一些面上对象的东西。比如说,第五章的绘图工具的数据结构,这个例子我没看下去,因为实在不想看:这个例子的重点已经不是在指针,作为C++继承的例子比较合适。4.作者在书中多出提到《C程序设计语言中》的一些不足。个人认为,作者所说的一些不足,太纠结于C语言语法本身(有些东西没必要特意拿出来说)。我觉得这样的写作手法会更好一些:别参杂个人情感,更多陈述事实。阐明每种方法或者习惯的优缺点,让读者自己去判断,去选择使用什么方法,选择什么编程风格。总的来说:介绍的内容不够集中,研究的深度还不够。顺便向大家推荐一下《C和指针》。我是看完《C和指针》之后直接看的《征服C指针》,希望能在前者的基础上进一步研究指针,但是我发现:你要是看明白《C和指针》,《征服C指针》基本就没必要看了。《C和指针》是我看过的C语言方面的书中写的比较好的:内容比较全(当前前面还是会有简单的语法介绍),侧重指针的讲解,而且讲的挺清楚的。写的有点乱,都是个人看法,不管有没有帮助,看完评价就很感谢了,至少没白写!
  •     《C和指针》压根就不是说指针,那本书的内容是讲C的基础只是,指针只是很少的一部分。《征服》是本很不错的书,起码我在笔试题中,关于指针的问题,毫无压力。尤其是第3章,关于指针的声明的读法,看完之后什么函数指针,指针的数组,数组的指针,这些对于初学者经常混乱的概念,看完之后绝对一清二楚,还有后面的多维数组,讲的也非常到位!总之,如果你刚学完谭浩强那本破书,但对C还是一知半解,本书绝对不会让你失望,强力推荐《征服C指针》!!

精彩短评 (总计64条)

  •     第一次知道指针这么多用法,看的过程中在Evernote中写了一堆笔记,估计还得再看一遍~
  •     第三次重读,每节都有亮点,适合电子阅读。C 系列最深刻的书。不适合新手。如果觉得没用,过个三五年再看造化
  •     用来查漏补缺、温故知新在合适不过了。
  •     作为3-4年的程序员,对于指针的理解一直不是很透彻。特别是因为工作缘故,C/C++接触的比较少,AS3之类的,接触得比较多。在阅读完这本书后,对于程序整体认识,有种打开一扇新大门的感觉。借指针这个切入点,将C的方方面面讲得很透彻,并且是结合实际的(比如2.7,2.8,讲了内存布局,并介绍了在移植性方面的实际运用,而这个内容我恰好在前段时间写跨平台移植的时候纠结过)。 --它不单是一本介绍指针的书。至于有看到说翻译烂的评价,我觉得可以读读样章,这个在图灵社区应该找得到。就我个人而言,不觉得有影响阅读的地方。
  •     本书被称为日本最有营养的C参考书,作者结合多年的编程经验和感悟,从C语言指针的概念讲起,通过实验一步一步地为我们解释了指针和数组、内存、数据结构的关系,展现了指针的常见用法,揭示了各种使用技巧。并且本书还通过独特的方式教会我们怎样解读C语言那些让人“纠结”的声明语法,如何绕过C指针的陷阱。相信购买本书是我的一个不错的选择!
  •     进阶挺好的,好多平时没注意的地方,复习一下
  •     很适合入门,但是日本写的书,巨细靡遗,不适合高手提高。
  •     反正对我这种菜鸟来说解决了很多问题
  •     看完这本书我觉得基本上在指针上不会有太多困扰了,日本人文风比较有趣。不过他批评K&R略让我不爽。
  •     这本书是在知乎上看了某个大牛的退件之后,才阅读的。当时,在重新温习C语言,总是好奇 c 中指针的问题,编写程序中爱出错误,无从下手。在看了这本书之后,有一定的收获,但是没有想象中的那么好。可能,对于技术类书籍,首次阅读肯定收获甚微吧,打算抽时间再读一遍,到时候再更新到豆瓣书评上来。值得说明的是,作者的描述方式的确独具一格,和以往的简单说理类技术书籍不同,有自己的经验在里面。阅读起来也很快,大约只用了三四天时间,就完全读完整本书了。这位日本程序员作者还有相关的c预言书籍,不过还没时间来看,其实于我而言,以后对于这类书籍完全可以考虑电子版阅读的方式,而非实体书了。
  •     还是很可以的哦,不错的
  •     让我理解更好的理解了c的一些声明格式
  •     还行,讲的挺简单的。
  •     应该早点看到 推荐一下
  •     虽然日本的编程书籍都显得很简单,但是这本书整个打广告的比较多,有点华而不实
  •     对于新手的话还是《C陷阱与缺陷》更使用,里面的内容对于有多年C/C++经验的程序员显得太过肤浅
  •     东西不错,价格合理。擳 好
  •     并没有觉得这就能征服指针啊,依然活在被指针支配的恐惧之下
  •     如果在编程的过程中,不明白指针和数组的关系,不明白内存是怎么分配的话,最好看看这本书。很值得学习。
  •     C的反人道的部分被碎碎念般地吐槽了.
  •     作者言辞犀利,确实能在此书中学到很多关于指针的知识,不过想要征服,看一遍可能是不够,其实这本书要比C与指针中所涉及指针的只是更多,所以要想深入学习一下指针,此书还是不错的,毕竟指针用处还是非常大的。缺点也是有的,有的时候感觉做的有点罗嗦,如果看的不仔细容易混淆,当然对于不同读者也许感受不同。建议就是这本书要快速读完,不理解就在读第二遍。这里的快速是指有连续性,千万不要读一点放一放,我第一次就是读了一半放那了,后来再读就得重读。
  •     图灵的电子书在kindle上的体验真心很赞
  •     语法糖
  •     虽然还没有完全看完,但已经爱不释手了,我能说这是我看的C书籍里面写的最好的吗?
  •     有一部分并不太客观
  •     还没有看完,感觉写的挺不错的。对于初学者有借鉴意义
  •     没有真正征服的感,带你了解一下才、指针的主要注意事项,有些说得不太详细!以后还需要好好的看看,看得很是粗略!
  •     市面上为数不多的专门讨论C指针的好书。
  •     何必死抠C语法?
  •     学C语言时一直搞不懂指针是什么玩意,直到看了这本书。。。
  •     对指针有了更进一步的认识,很有收获
  •     这本书对C标准理解还是很透彻的,适合那些希望想理解C标准中许多模糊概念的人看。
  •     但觉得分析的挺有条理的,值得拥有。。。
  •     把指针讲得很浅显
  •     对于指针还是讲得很清楚了,不错 推荐
  •     比较基础,没讲什么进阶的东西,加上很多地方翻译的比较诡异
  •     吹的有点大,名不符其实
  •     读的眼睛都快瞎了 要多读几遍呀
  •     不错,精华内容不算多,开篇夸口言过其实
  •     语言挺犀利的,不过实际内容有点少,不适合有经验的c programmer
  •     还可以的C进阶书吧
  •     对我这种C语言菜鸟来说很有用。
  •     不错! 翻译也没有问题.这是一本很好的书 常读常新
  •     two weekends easily done.
  •     当作C语言的小说看看,自己不了解的内容,吸取一下即可。
  •     对指针分析得非常清楚,可以作为工具书,也可以作为教材供初学者学习指针。
  •     作者吐槽深得我心。看的停不下来的好书
  •     没有c和指针好看 适合作为补充材料看
  •     有点过时,另外作者略龟毛,虽然做到了复杂的东西简单化,也常常把简单的东西讲的复杂化了。纯教育角度而言的话,是诚意之作。小品书,可以当复习资料饭后小读。
  •     主要讲解了C语言指针的一些误读和使用方法,语言生动简单,译者功劳很大,把作者的语言风格也用中文合格的表现了出来,赞。
  •     读了两遍,言辞确实犀利
  •     看了目录很不错,在图灵社区买来电子书,讲指针有自己的见解,特别是用英文理解声明语法一节,读完还是有所得的。讲下缺点:读下来很纠结,有些地方作者能够做到引用具体文献来证明自己的观点,但也有很多是随意和Java做比较、评论,发疑问,这些对目标读者(初学者)并不友好,比较和评论让人不知所以,发疑问根本没必要,因为没结论,初学者更加处理不了,更适合在blog上发出来和别人探讨。全书用了非常多的旁注,一般这种情况要么是内容太丰富需要外引,要么是正文说不明白得稍加描述、强调,本书是后者,而且有部分无谓的废话、疑问等。很多「补充」加入了主题无关的内容,什么「倍倍游戏」,汗。作者似乎喜欢后引,把后面的内容在前面提一下然后停了不说,干脆就别后引了,反正讲不明白。注意,有部分内容跟指针完全没关系。
  •     非常不错,比 hello world 类别的书高几个等级。
  •     指针讲的不够深入
  •     内容还可以,不妨读读
  •     不错的书。说了很多。最后的数据结构算法一章有点不完善
  •     前边几章感觉还不错,后面感觉就一般了~
  •     鬼子的树貌似最近很火,这本想来应该值得读一下
  •     把抽象的东西讲解得很独特
  •     对于深入理解指针有一定的帮助,值得一读
  •     语言通俗易懂,非常适合初学者
  •     非常好的一本C语言,适合有基础的童鞋。
  •     和我一样的半吊子程序员就不要看了。从内容来说,大概2~3篇博客就能说清楚书里的内容了。作者洋洋洒洒300多页,更容易把人绕的晕了。
  •     不知道大家给的评分为啥偏低,个人绝对给五星。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024