征服C指针

出版时间:2013-2  出版社:人民邮电出版社  作者:前桥和弥  译者:吴雅明  
Tag标签:无  

内容概要

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

作者简介

前桥和弥(Maebasi Kazuya)    1969年出生,著有《彻底掌握C语言》、《Java之谜和陷阱》、《自己设计编程语言》等。其一针见血的"毒舌"文风和对编程语言深刻的见地受到广大读者的欢迎。作者主页:http://kmaebashi.com/。译者简介:吴雅明    13年编程经验。其中7年专注于研发基于JavaEE和.NET的框架和代码生成工具。目前主要关注的方向有:Hadoop、HTML5、智能手机应用开发等。

书籍目录

第0章本书的目标与结构——引言 0.1本书的目标 0.2目标读者和内容结构 第1章从基础开始——预备知识和复习 1.1C是什么样的语言 1.1.1比喻 1.1.2C的发展历程 1.1.3不完备和不统一的语法 1.1.4ANSIC 1.1.5C的宝典——K&R 1.1.6C的理念 1.1.7C的主体 1.1.8C是只能使用标量的语言 1.2关于指针 1.2.1恶名昭著的指针究竟是什么 1.2.2和指针的第一次亲密接触 1.2.3指针和地址之间的微妙关系 1.2.4指针运算 1.2.5什么是空指针 1.2.6实践——swap函数 1.3关于数组 1.3.1运用数组 1.3.2数组和指针的微妙关系 1.3.3下标运算符[]和数组是没有关系的 1.3.4为什么存在奇怪的指针运算 1.3.5不要滥用指针运算 1.3.6试图将数组作为函数的参数进行传递 1.3.7声明函数形参的方法 第2章做个实验见分晓——C是怎么使用内存的 2.1虚拟地址 2.2C的内存的使用方法 2.2.1C的变量的种类 2.2.2输出地址 2.3函数和字符串常量 2.3.1只读内存区域 2.3.2指向函数的指针 2.4静态变量 2.4.1什么是静态变量 2.4.2分割编译和连接 2.5自动变量(栈) 2.5.1内存区域的“重复使用” 2.5.2函数调用究竟发生了什么 2.5.3可变长参数 2.5.4递归调用 2.6利用malloc()来进行动态内存分配(堆) 2.6.1malloc()的基础 2.6.2malloc()是“系统调用”吗 2.6.3malloc()中发生了什么 2.6.4free()之后,对应的内存区域会怎样 2.6.5碎片化 2.6.6malloc()以外的动态内存分配函数 2.7内存布局对齐 2.8字节排序 2.9关于开发语言的标准和实现——对不起,前面的内容都是忽悠的 第3章揭秘C的语法——它到底是怎么回事 3.1解读C的声明 3.1.1用英语来阅读 3.1.2解读C的声明 3.1.3类型名 3.2C的数据类型的模型 3.2.1基本类型和派生类型 3.2.2指针类型派生 3.2.3数组类型派生 3.2.4什么是指向数组的指针 3.2.5C语言中不存在多维数组! 3.2.6函数类型派生 3.2.7计算类型的大小 3.2.8基本类型 3.2.9结构体和共用体 3.2.10不完全类型 3.3表达式 3.3.1表达式和数据类型 3.3.2“左值”是什么——变量的两张面孔 3.3.3将数组解读成指针 3.3.4数组和指针相关的运算符 3.3.5多维数组 3.4解读C的声明(续) 3.4.1const修饰符 3.4.2如何使用const?可以使用到什么程度? 3.4.3typedef 3.5其他 3.5.1函数的形参的声明 3.5.2关于空的下标运算符[] 3.5.3字符串常量 3.5.4关于指向函数的指针引起的混乱 3.5.5强制类型转换 3.5.6练习——挑战那些复杂的声明 3.6应该记住:数组和指针是不同的事物 3.6.1为什么会引起混乱 3.6.2表达式之中 3.6.3声明 第4章数组和指针的常用方法 4.1基本的使用方法 4.1.1以函数返回值之外的方式来返回值 4.1.2将数组作为函数的参数传递 4.1.3可变长数组 4.2组合使用 4.2.1可变长数组的数组 4.2.2可变长数组的可变长数组 4.2.3命令行参数 4.2.4通过参数返回指针 4.2.5将多维数组作为函数的参数传递 4.2.6数组的可变长数组 4.2.7纠结于“可变”之前,不妨考虑使用结构体 4.3违反标准的技巧 4.3.1可变长结构体 4.3.2从1开始的数组 第5章数据结构——真正的指针的使用方法 5.1案例学习1:计算单词的出现频率 5.1.1案例的需求 5.1.2设计 5.1.3数组版 5.1.4链表版 5.1.5追加检索功能 5.1.6其他的数据结构 5.2案例学习2:绘图工具的数据结构 5.2.1案例的需求 5.2.2实现各种图形的数据模型 5.2.3Shape型 5.2.4讨论——还有别的方法吗 5.2.5图形的组合 5.2.6继承和多态之道 5.2.7对指针的恐惧 5.2.8说到底,指针究竟是什么 第6章其他——拾遗 6.1陷阱 6.1.1关于strncpy 6.1.2如果在早期的C中使用float类型的参数 6.1.3printf()和scanf6.1.4原型声明的光和影 6.2惯用句法 6.2.1结构体声明 6.2.2自引用型结构体 6.2.3结构体的相互引用 6.2.4结构体的嵌套 6.2.5共用体 6.2.6数组的初始化 6.2.7char数组的初始化 6.2.8指向char的指针的数组的初始化 6.2.9结构体的初始化 6.2.10共用体的初始化 6.2.11全局变量的声明

章节摘录

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

编辑推荐

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

图书封面

图书标签Tags

评论、评分、阅读与下载


    征服C指针 PDF格式下载


用户评论 (总计14条)

 
 

  •   还行,讲的挺简单的。
  •   但觉得分析的挺有条理的,值得拥有。。。
  •   对我这种C语言菜鸟来说很有用。
  •   吹的有点大,名不符其实
  •   还是很可以的哦,不错的
  •   对指针分析得非常清楚,可以作为工具书,也可以作为教材供初学者学习指针。
  •   作为3-4年的程序员,对于指针的理解一直不是很透彻。特别是因为工作缘故,C/C++接触的比较少,AS3之类的,接触得比较多。在阅读完这本书后,对于程序整体认识,有种打开一扇新大门的感觉。借指针这个切入点,将C的方方面面讲得很透彻,并且是结合实际的(比如2.7,2.8,讲了内存布局,并介绍了在移植性方面的实际运用,而这个内容我恰好在前段时间写跨平台移植的时候纠结过)。 --它不单是一本介绍指针的书。至于有看到说翻译烂的评价,我觉得可以读读样章,这个在图灵社区应该找得到。就我个人而言,不觉得有影响阅读的地方。
  •   东西不错,价格合理。擳 好
  •   对于指针还是讲得很清楚了,不错 推荐
  •   本书被称为日本最有营养的C参考书,作者结合多年的编程经验和感悟,从C语言指针的概念讲起,通过实验一步一步地为我们解释了指针和数组、内存、数据结构的关系,展现了指针的常见用法,揭示了各种使用技巧。并且本书还通过独特的方式教会我们怎样解读C语言那些让人“纠结”的声明语法,如何绕过C指针的陷阱。相信购买本书是我的一个不错的选择!
  •   语言挺犀利的,不过实际内容有点少,不适合有经验的c programmer
  •   内容还可以,不妨读读
  •   把抽象的东西讲解得很独特
  •   如果在编程的过程中,不明白指针和数组的关系,不明白内存是怎么分配的话,最好看看这本书。很值得学习。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7