下载  >  课程资源  >  C/C++  > C语言深度解剖 C language depth anatomy

C语言深度解剖 C language depth anatomy 评分

我遇到过很多程序员和计算机系毕业的学生,也给很多程序员和计算机系毕业的学生讲 解过《高级C 语言程序设计》。每期班开课前,我总会问学生:你感觉C 语言学得怎么样? 难吗?指针明白吗?数组呢?内存管理呢?往往学生回答说:感觉还可以,C 语言不难,指 针很明白,数组很简单,内存管理也不难。一般我会再问一个问题:通过这个班的学习, 你想达到什么程度?很多学生回答:精通C 语言。我告诉他们:我很无奈,也很无语。因 为我完全在和一群业余者或者是C 语言爱好者在对话。你们大学的计算机教育根本就是在 浪费你们的时间,念了几年大学,连C 语言的门都没摸着。现在大多数学校计算机系都开 了C、C++
写在前言前面的话 最近面试了一些人,包括应届木科、硕士和工作多年的程序员, 在问到C语言相关的问题的时候,总是没几个人能完全答上我的问 题。甚至一些工作多年,简历上写着“最得意的语言是C语言”,“对 C有很深的研究”,“精通C语言”的人也答不完全我的问题,甚至有 个别人我问的问题一个都答不上。于是我就想起了我去年闲的使用写 的这木小册子。 这本小册子已经在我电脑里睡了一年大觉了。并非没有出版社愿 意出版,而是几个大的出版社都认为书写得不错,但太薄,利润太低, 所以要求我加厚到300页以上。我拒绝加厚,并为此和几个出版社僵 持了一年多。我认为经典的东西一定要精炼,不要废话。这次由于面 试别人,所以终于记起了我还写过这么一本小册子。想了想,还是决 定挂到网上免费让大家看得了。并为此专门为本书开了个博客,以方 便和读者交流。博客地址http://blog.csdnnct/disscctionc 作者简介 陈正冲:湖南沅江人,毕业于长春光学精密机械学院(长春理工 大学)数学系。目前从事嵌入式软件开发和管理方面的工作 石虎:湖南沅江人,毕业于吉林大学计算机系。目前为大连交通 大学计算机系讲师 前言 我遇到过很多程序员和计算机系毕业的学生,也给很多程序员和计算机系毕业的学生讲 解过《高级语言程序设计》。每期班开课前,我总会问学生:你感觉语言学得怎么样? 难吗?指针明白吗?数组呢?内存管理呢?往往学生回答说:感觉还可以,语言不难,指 针很明白,数组很简单,内存管理也不难。一般我会冉问一个问题:通过这个班的学习, 你想达到什么程度?很多学生回答:精通语言。我告诉他们:我很无奈,也很无语。因 为我完仝在和一群业余者或者是语言爱好者在对话。你们大学的计算机教育根木就是在 浪费你们的时间,念了几年人学,连语言的门都没摸着。现在人多数学校计算机系都开 等等语言,好像什么都学了,但是什么都不会,更可悲的是有些大学 居然取消了语言课程,认为其过时了。我个人的观点是“十鸟在林,不如一鸟在手”,真 正把语言整明白了再学别的语言也很简单,如果语言都没整明白,别的语言学得再好 也是花架子,因为你并不了解底层是怎么回事。当然我也从来不认为一个没学过汇编的人 能真正掌握语言的真谛。我个人一直认为,普通人用语言在年之下,一般来说,还 没掌握语言;年之下,一般来说还没熟悉语言:年之下,谈不上精通。所以,我 告诉我的学生:听完我的渫,远达不到精通的目标,熟悉乜达不到,掌握也达不到。那能 达到什么目标?领你们进入话言的大门。入门之后的造化如何在于你们自己。不过我 可以告诉你们条不是捷径的捷径:把个键盘的或按坏,当然不能是垃圾键盘 往往讲到这里,学生眼里总是透露着疑虑。语言有这么难吗?我的回答是:不难。但 你就是用不明白。学生说:以前大学老师讲语言,我学得很好。老师讲的都能听懂,考 试也很好。平时练习感觉自凵还不错,工作也很轻松找到了。我告诉学生:听明白,看明 白不代表你懂了,你懂了不代表你会用了,你会用了不代表你能用明白,你能用明白不代 表你頁正懂了!什么吋候衣明你真正懂了昵?你站在我这来,把问题给下面的同学讲明白, 学生都听明白了,说明你真正懂了。否则,你就没真正懂,这是检验懂没懂的唯一标准。 冰山大家都没见过,但总听过或是电影里看过吧?如果你连《泰坦尼克》都没看过,那你 也算个人物(廾个玩笑)。《泰坦尼克》里的冰山给泰坦尼克造成了巨大的损失。你们都是 理工科的,应该明白冰山在水面上的部分只是总个冰山的。我现在就告诉你们,语言 就是这座冰山。你们现在仅仅是摸到了水面上的部分,甚至根本不知道水面下的部分。我 希望通过我的讲解,让你们摸到水面下的部分,让你们知道语言到底是什么样子。 从现在开始,除非在特殊情况下,不允许用这个函数。为什么呢?很多学生写亢 代码,直接用打印出来,发现结果不对。然后就举手问我老师,我的结果为什么不 对啊?连调试的意识都没有!大多数学生根本就不会调试,不会看变量的值,内存的值 只知道山来结果不对,却不知道为什么不对,怎么解决。这种情況还算好的。往往很 多时侯出来的结果是对的,然后呢,学生也理所当然的认为程序没有问题。是这样吗? 往往不是,往后看,你能看到例子的。永远给我记住一点:结果对,并不代表程序真正没 有问题。所以,以后尽量不要用函数,要去看变量的值,内存的值。当然,在我们目 前的编译器里,变量的值,内存的值对了就代表你程序没问题吗?也不是,往后,你也公 看到例了的。 这个时候呢,学生往往公莫名其妙。这个老师有问题吧。大学里我们老师都教我们怎么 用,告诉我们要经常用 这也恰恰是大学教育失败的地方之一。很多大学老师根 木就没真正用语言写过儿行代码,更别说教学生调试代码了。不调试代码,不按或 水平永远也无法提上来,所以,要想学好一门编程语言,最好的办法就是多调试。你去 个软件公司转转,去看人家的键盘,如果发现键盘上的或铮亮铮亮,毫无疑问, 此机的主人曾经或现在是开发人员(这里仅指写代码的,不上升到架构设计类的开发人员), 否则,必是非开发人员。 非常有必要申明,本人并非什么学者或是专家,但本人是数学系毕业,所以对理论方面 比较擅长。讲解的时候会举很多例子来尽量使学生明白这个知识点,至于这些例子是否恰 当则是见仁见智的问题了。但是一条,长期的数学训练使得本人思维比较严谨,讲解一些 知识点尤其是一些概念性原理性的东西时会抠的很细、很严,这一点相信读者会体会得到 的。本书是我平时讲解语言的一些心得和经验,其中有很多我个人的见解或看法。经过 多期培训班的实践,发现这样讲解得比较透彻,学生听得明自。很多学生听完课后告诉我: 我有生以来听课从来都没有听得这么透彻,这么明白过。也有业余班的学生甚至辞掉本职 工作来听我的课的。 当然,关于语言的这么多经验和心得的积累并非我·人之力。借用句名言:我只 不过是站在巨人的肩膀上而已。给学生做培训的时候我参考得比较多的书有 的《 的《 的《 的 》;林锐的《高质量 编程指南》。这些书都是经典之 作,但却都有着各自的缺陷。读者往往需要同时阅读这些书才能深刻的掌握某·知识点 我的讲课的试图时候融各家之长,再加上我个人的见解传授给学生。还好,学生反映还可 以,至少还没有出乱子。这些书饱含着作者的智慧,每读一遍都有不同的收获,我希望读 者能读上十遍。另外,在编写本书时也参考∫网上一些无名高手的文章,这些高手的文章 见解深刻,使我受益匪浅。这里要感谢这些大师们,如果不是他们,肯怕我的语言的水 平也仅仅是入门而已。 学习语言,这几本书如果真正啃透了,水平不会差到哪。与其说本书是我授课的经 验与心得,不如说本书是我对这些大师们智慧的解读。本书并不是从头到尾讲解语言的 基础知识,所以,本书并不适用于语言零基础的人。本书的知识要比一般的语言书说 讲的深的多,其中有很多问题是各大公司的面试或笔试题。所以本书的读者应该是中国广 大的计算机系的学生和初级程序员。如果本书上面的问题能真正明白,作为个应届 毕业生,肯怕没有一家大公司会拒绝你。当然,书内很多知识也值得计算机教师或是中高 级程序员参考。尤其书内的一些例子或比方,如果能被广大教师用于课堂,我想对学生来 说是件非常好的事情。有人说电影是一门遗憾的艺术,因为在编完成之后总能或多或少 的发现一些本来可以做得更好的缺陷。讲课同样也如此,每次讲完课之后总能发现白己某 些地方或是没有讲到,或是没能讲透彻或是忘了举一个轻浅的例子等等。整理本书的过程 也是,为了尽量精炼,总是犹豫一些东西的去留。限于作者水平,书中难免有些遗漏甚至 错误,希望各位读者能予指教。作者 陈正冲 年月日 录 第一章关键字 ,最宽恒大量的关键字 最快的关键字 皇帝身边的小太监寄存器 ,使用 修饰符的注意点 ,最名不符实的关键字 ,修饰变量 ,修饰函数 ,基本数据类型 数据类型与模子 ,变量的命名规则 ,最冤杜的关键字 ,常年被人误认为函数 )表示什么意思 关键字 组合 变量与零值进行比较 变量与零值进行比较 ,指针变量与零值进行比较 到底与哪个配对呢? 语句后面的分号 ,使用语句的其他注意事项 组合 ,不要拿青龙偃月刀去削苹果 关键字后面的值有什么要求吗? 语句的排列顺序 ,使用语句的其他注意事项 关键宁 与 的区别 ,循坏语句的注意点 关键字 关键字 关键字 关键字也许该被替换为 ,节省空间,避免不必要的内存分配,同时提高效率 ,最易变的关键字 ,最会带帽子的关键字 关键字 空结构休多大? 柔性数组 与的区别 关键字 大小端模式对型数据的影响 ,如何用程序确认当前系统的存储模式? 关键字 枚举类型的使用方法 ,枚举与 宏的区别 ,伟大的缝纫师 关键字 ,关于马甲的笑话 ,历史的误会也许应该是 与 的区别 与 第二章符号 注释符号 ,几个似非而是的注释问题 ,怎样才能写出出色的注释 ,安息吧,路德维希凡贝多芬 大师们用注释讨论天气问题 出色注释的基本要求 ,接续符和转义符 单引号、双引号 ,逻辑运算符 ,位运算符 ,左移和右移 的值为多少? ,花括号 操作符 ,贪心法 的值是多少? ,运算符的优先级 运算符的优先级表 些容易出错的优先级问题 第三章预处理 ,宏定义 ,数值宏常量 ,宇符串宏常量 用用 宏定义注释符号? 宏定义表达式 ,宏定义中的空格 ,条件编译 ,文件包含 预处理 顶处理 预处理 ,为什么会有内存对齐 ,如何避兔内存对齐的影响 运算符 颀算符 第四章指针和数组 ,指针 ,指针的内存布局 ,与防盗门的钥匙 和 有什么区别? ,如何将数值存储到指定的内存地址 ,编译器的? ,如何达到手中无剑、胸中也无剑的地步 ,数组 ,数组的内存布局 ,数组名作为左值和右值的区别 ,指针与数组之间的恩恩怨怨 ,以指针的形式访问和以下标的形式访问 以指针的形式访问和以下标的形式访问指针 ,以指针的形式访问和以卜标的形式访问数组 ,和的区别 ,指针和数组的定义与声明 ,定义为数组,声明为指针 ,定义为指针,声明为数组 ,指针和数组的对比 ,指针数组和数组指针 指针数组和数组指针的内存布局 再论和之间的区别 ,地址的强制转换 ,多维薮组与多级指针 ,二维数组 假想中的二维数组布局 ,内存与尺子的对比 的值为多少? ,二级指针 ,二级指针的内存布局 ,数组参数与指针参数 ,一维数组参数 ,能否向函数传递一个数组? 无法向函数传递个数组 ,一级指针参数 ,能否把指针变量本身传递给一个函数 无法把指针变量本身传递给一个函数 ,二维数组参数与二维指针参数 函数指针 ,函数指针的定义 ,函数指针的使用 函数指针使用的例了 这是什么? 这是什么? ,函数指针数组 两数指针数组的指针 第五章内存管理 ,什么是野指针 栈、堆和静态区 ,常见的内存错误及对策 ,指针没有指向一块合法的内存 ,结构体成员指针未初始化 ,没有为结构体指针分配足够的内存 函数的入口校验 ,为指针分配的内存太小 ,内存分配成功,但并未初始化 ,内存越界 ,内存泄漏 ,告老还乡求良田 ,如何使用 函数 函数中请字节内存 内存释放 ,内存释放之后 ,内存已经被释放了,但是华续通过指针来使用 第六章函数 ,函数的由来与好处 ,编码风格 函数设计的一般原则和技巧 数递归 ,一个简单但易出错的递归例子 ,不使用任何变量编写 函数 第七章文件结构 ,文件内容的般规则 ,文件名命名的规则 第一章关键字 每次讲关键字之前,我总是问学生:语言有多少个关键字? 怎么用?它是函数 吗?有些学生不知道语言有多少个关键字,大多数学生往往告诉我是函数,因为 它后面跟着一对括号。当投景仪把这个关键宁投到幕布上时,很多学生表情惊讶。有些 关键字从没见过,有的惊讶语言关键字竟有个之多。更有甚者,说大学老师告诉他 们 是函数,没想到它居然是关键字!由此可想而知,大学的计算机教育是多么失败! 表语言标准定义的个关键字 关键字 意 义 声明自动变量,缺省时编译器一般默认为 声明整型变量 声明双精度变量 声明长整型变量 声明字符型变量 声明浮点型变量 声明知整型变量 声明有符号类型变量 声明无符号类型变量 声明结构体变量 声明联合数据类型 声明枚举类型 声明静态变星 用于开关语句 开关语句分支 开关语句中的其他分支 跳出当前循环 声明寄存器变量 声明只读变量 说明变量在稈序执行中可被隐含地改变 用以给数据类型取别名当然还有其他作用

...展开详情
所需积分/C币:10 上传时间:2011-11-11 资源大小:964KB
举报 举报 收藏 收藏
分享 分享

评论 下载该资源后可以进行评论 2

drinkstar 好经典的c教程啊,不错不错,收收收
2013-04-13
回复
syukayo 很清晰的pdf文档,内容也很不错,复习C语言的同时也可以进一步加强一下
2012-06-17
回复
C语言深度解剖

《C语言深度解剖:解开程序员面试笔试的秘密》由作者结合自身多年嵌入式c语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以《C语言深度解剖:解开程序员面试笔试的秘密》并不适用于C语言零基础的读者,其内容要比一般的C语言图书深得多、细致得多,其中有很多问题是各大公司的面试或笔试题。, 《C语言深度解剖:解开程序员面试笔试的秘密》适合广大计算机系学生、初级程序员参考学习,也适合计算机系教师、中高级程序员参考使用。

立即下载
C语言深度解剖(完美高清文字版)

C语言深度解剖(完美高清文字版)我遇到过很多程序员和计算机系毕业的学生,也给很多程序员和计算机系毕业的学生讲 解过《高级 C 语言程序设计》。

立即下载
C语言深度解剖pdf

以含金量勇敢挑战国内外同类书籍 陈正冲编著 石虎审阅

立即下载
C语言深度解剖 高清PDF版

提供的是C语言深度解剖 高清PDF版,深度分析了C语言开发中遇到的难点和。点,

立即下载
《C语言深度解剖》PDF

《C语言深度解剖》

立即下载
C语言深度解剖(完整版pdf)

C语言深度解剖 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看 本书适合进阶的人员看! 本书适合进阶的人员看! 本书适合进阶的人员看!

立即下载
C语言深度解剖(完美版)

C语言深度解剖(完美版)

立即下载
C语言深度解剖--陈正冲

C 语言深度解剖 -------------------解开程序员面试笔试的秘密 目录 第一章关键字.........9 1.1,最宽恒大量的关键字----auto..11 1.2,最快的关键字---- register....... 11 1.2.1,皇帝身边的小太监----寄存器 11 1.2.2,使用register 修饰符的注意点11 1.3,最名不符实的关键字----static12 1.3.1,修饰变量.12 1.3.2,修饰函数.13 1.4,基本数据类型----short、int、long、char、float、double.......... 13 1.4.1,数据类型与“

立即下载
C语言深度解剖(高清文字版)

C语言深度解剖(高清文字版C语言深度解剖(高清文字版)

立即下载
C语言深度解剖完整版(陈正冲)

C语言深度解剖完整版(陈正冲)!

立即下载
C语言深度解剖-带书签(非印刷版).pdf

《C语言深度解剖(第2版):解开程序员面试笔试的秘密》由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以本书并不适用于C语言零基础的读者,其内容要比一般的C语言图书深得多、细致得多,其中有很多问题是各大公司的面试或笔试题。第2版中新增加了部分编程规范的内容。 本书适合广大计算机系学生、初级程序员参考学习,也适合计算机系教师、中高级程序员参考使用。

立即下载
C语言深度解剖(第二版)

C语言深度解剖是陈正冲老师编写的,深度解剖C语言,有浅入深。无论你是新手还是老司机看完后肯定受益匪浅。

立即下载
C语言深度解剖(完美版).pdf

C语言深度解剖(完美版).pdf 描述了c语言的使用和应用

立即下载
C语言深度解剖-完美高清带书签版.pdf

这本书多年前收藏,顺便把书签优化了一下,高清pdf,作者承诺书的含金量可以挑战当时市面同类书籍,程序员,计算机专业的可以欣赏一下作者的领悟

立即下载
C语言深度解剖(有完整目录 完美高清文字版)

本书由作者结合自身多年嵌入式C语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以本书并不适用于C语言零基础的读者,其内容要比一般的C语言图书深得多、细致得多,其中有很多问题是各大公司的面试或笔试题。第2版中新增加了部分编程规范的内容。 本书适合广大计算机系学生、初级程序员参考学习,也适合计算机系教师、中高级程序员参考使用。

立即下载
C语言深度解剖(第2版)解开程序员面试笔试的秘密

《C语言深度解剖:解开程序员面试笔试的秘密》由作者结合自身多年嵌入式c语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以《C语言深度解剖:解开程序员面试笔试的秘密》并不适用于C语言零基础的读者,其内容要比一般的C语言图书深得多、细致得多,其中有很多问题是各大公司的面试或笔试题。 《C语言深度解剖:解开程序员面试笔试的秘密》适合广大计算机系学生、初级程序员参考学习,也适合计算机系教师、中高级程序员参考使用。

立即下载
C语言深度解剖 第一版和第二版(打包)

C语言基础要点总结

立即下载
C语言深度解剖(高清文字版).pdf )

C语言深度解剖(高清文字版).pdf )学习c的好帮手

立即下载
ModbusTCP/RTU网关设计

基于UIP协议栈,实现MODBUS联网,可参考本文档资料,有MODBUS协议介绍

立即下载
html+css+js制作的一个动态的新年贺卡

该代码是http://blog.csdn.net/qq_29656961/article/details/78155792博客里面的代码,代码里面有要用到的图片资源和音乐资源。

立即下载