资料介绍
我遇到过很多程序员和计算机系毕业的学生,也给很多程序员和计算机系毕业的学生讲解过《高级 C 语言程序设计》。每期班开课前,我总会问学生:你感觉 C 语言学得怎么样?难吗?指针明白吗?数组呢?内存管理呢?往往学生回答说:感觉还可以,C 语言不难,指针很明白,数组很简单,内存管理也不难。一般我会再问一个问题:通过这个班的学习,你想达到什么程度?很多学生回答:精通 C 语言。我告诉他们:我很无奈,也很无语。因为我完全在和一群业余者或者是 C 语言爱好者在对话。你们大学的计算机教育根本就是在浪费你们的时间,念了几年大学,连 C 语言的门都没摸着。现在大多数学校计算机系都开了 C、C++、Java、C#等等语言,好像什么都学了,但是什么都不会,更可悲的是有些大学居然取消了 C 语言课程,认为其过时了。我个人的观点是“十鸟在林,不如一鸟在手”,真正把 C 语言整明白了再学别的语言也很简单,如果 C 语言都没整明白,别的语言学得再好也是花架子,因为你并不了解底层是怎么回事。当然我也从来不认为一个没学过汇编的人能真正掌握 C 语言的真谛。我个人一直认为,普通人用 C 语言在 3 年之下,一般来说,还没掌握 C 语言;5 年之下,一般来说还没熟悉 C 语言;10 年之下,谈不上精通。所以,我告诉我的学生:听完我的课,远达不到精通的目标,熟悉也达不到,掌握也达不到。那能达到什么目标?-----领你们进入 C 语言的大门。入门之后的造化如何在于你们自己。不过我可以告诉你们一条不是捷径的捷径:把一个键盘的 F10 或 F11 按坏,当然不能是垃圾键盘。
往往讲到这里,学生眼里总是透露着疑虑。C 语言有这么难吗?我的回答是:不难。但你就是用不明白。学生说:以前大学老师讲 C 语言,我学得很好。老师讲的都能听懂,考试也很好。平时练习感觉自己还不错,工作也很轻松找到了。我告诉学生:听明白,看明白不代表你懂了,你懂了不代表你会用了,你会用了不代表你能用明白,你能用明白不代表你真正懂了!什么时候表明你真正懂了呢?你站在我这来,把问题给下面的同学讲明白,学生都听明白了,说明你真正懂了。否则,你就没真正懂,这是检验懂没懂的唯一标准。冰山大家都没见过,但总听过或是电影里看过吧?如果你连《泰坦尼克》都没看过,那你也算个人物(开个玩笑)。《泰坦尼克》里的冰山给泰坦尼克造成了巨大的损失。你们都是理工科的,应该明白冰山在水面上的部分只是总个冰山的 1/8。我现在就告诉你们,C 语言就是这座冰山。你们现在仅仅是摸到了水面上的部分,甚至根本不知道水面下的部分。我希望通过我的讲解,让你们摸到水面下的部分,让你们知道 C 语言到底是什么样子。
从现在开始,除非在特殊情况下,不允许用 printf 这个函数。为什么呢?很多学生写完代码,直接用 printf 打印出来,发现结果不对。然后就举手问我:老师,我的结果为什么不对啊?连调试的意识都没有!大多数学生根本就不会调试,不会看变量的值,内存的值。只知道 printf 出来结果不对,却不知道为什么不对,怎么解决。这种情况还算好的。往往很多时候 printf 出来的结果是对的,然后呢,学生也理所当然的认为程序没有问题。是这样吗?往往不是,往后看,你能看到例子的。永远给我记住一点:结果对,并不代表程序真正没有问题。所以,以后尽量不要用 printf 函数,要去看变量的值,内存的值。当然,在我们目前的编译器里,变量的值,内存的值对了就代表你程序没问题吗?也不是,往后,你也会看到例子的。
这个时候呢,学生往往会莫名其妙。这个老师有问题吧。大学里我们老师都教我们怎么用 printf,告诉我们要经常用 printf。这也恰恰是大学教育失败的地方之一。很多大学老师根本就没真正用 C 语言写过几行代码,更别说教学生调试代码了。不调试代码,不按 F10 或F11,水平永远也无法提上来,所以,要想学好一门编程语言,最好的办法就是多调试。你去一个软件公司转转,去看人家的键盘,如果发现键盘上的 F10 或 F11 铮亮铮亮,毫无疑问,此机的主人曾经或现在是开发人员(这里仅指写代码的,不上升到架构设计类的开发人员),否则,必是非开发人员。
C 语言有多少个关键字?sizeof 怎么用?它是函数吗?有些学生不知道 C 语言有多少个关键字,大多数学生往往告诉我 sizeof 是函数,因为它后面跟着一对括号。当投影仪把这 32 个关键字投到幕布上时,很多学生表情惊讶。有些关键字从来没见过,有的惊讶 C 语言关键字竟有 32 个之多。更有甚者,说大学老师告诉他们 sizeof 是函数,没想到它居然是关键字!由此可想而知,大学的计算机教育是多么失败!
下面的篇幅就一一讲解这些关键字。但在讲解之前先明确两个概念:
什么是定义?什么是声明?它们有何区别?
举个例子: A)int i;
B)extern int i;(关于 extern,后面解释)
哪个是定义?哪个是声明?或者都是定义或者都是声明?我所教过的学生几乎没有一人能回答上这个问题。这个十分重要的概念在大学里从来没有被提起过!
什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊。^_^),它们就同生共死,终生不离不弃。并且这块内存的位置也不能被改变。一个变量或对象在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。
什么是声明:有两重含义,如下:
第一重含义:告诉编译器,这个名字已经匹配到一块内存上了(伊人已嫁,吾将何去何从?何以解忧,唯有稀粥),下面的代码用到变量或对象是在别的地方定义的。声明可以出现多次。
第二重含义:告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量名或对象名。比如你在图书馆自习室的某个座位上放了一本书,表明这个座位已经有人预订,别人再也不允许使用这个座位。其实这个时候你本人并没有坐在这个座位上。这种声明最典型的例子就是函数参数的声明,例如:
void fun(int i, char c); 好,
这样一解释,我们可以很清楚的判断:A)是定义;
B)是声明。
那他们的区别也很清晰了。记住,定义声明最重要的区别:定义创建了对象并为这个对象分配了内存,声明没有分配内存
- C语言深度解剖电子版资源下载 0次下载
- C语言深度解剖电子版下载 0次下载
- 科大讯飞的Java面试笔试题(附带参考答案)资料免费下载 12次下载
- 《C语言深度解剖》让你快速通过程序员面试详细电子教材免费下载 0次下载
- c语言教程之《C语言深度剖析:解开程序员面试笔试的秘密》免费下载 0次下载
- 程序员面试宝典 0次下载
- C语言深度解剖 8次下载
- C语言深度解剖----解开程序员面试笔试的秘密 0次下载
- C语言深度解剖_解开程序员面试笔试的秘密-陈正冲编著 0次下载
- 解开程序员面试笔试的秘密-C语言深度解剖 陈正冲 编著 0次下载
- 解开程序员面试笔试的秘密-C语言深度解剖 10次下载
- C语言深度解剖-解开程序员面试笔试的秘密 72次下载
- 程序员面试宝典(pdf清晰版) 0次下载
- C语言深度解剖
- 程序员面试宝典下载(pdf电子书)
- 技术干货驿站 ▏深入理解C语言:掌握程序结构知识 833次阅读
- 5款程序员最佳的代码比较工具 5331次阅读
- C语言与C++面试知识点总结 1745次阅读
- 六款程序员必看的前端在线开发工具 2689次阅读
- 使用51单片机读写AT29C040的C语言程序免费下载 4529次阅读
- 嵌入式C语言的小技巧能够减少不少代码量 1535次阅读
- OpenCV的Mat数据格式及其遍历的程序资料说明 3939次阅读
- 程序员值得一看的9本学习算法经典书籍 4w次阅读
- 程序员眼中的浪漫,如何用C语言画“心”? 4628次阅读
- 华为资深工程师:程序员与码农的差异在哪? 3620次阅读
- 一个电子发烧友的程序员成长之路 6751次阅读
- C语言作为高级编程语言中的一门“低级”语言为什么要学习? 8014次阅读
- 如果是初学C语言请看完,如何学好C语言绝对精品 8628次阅读
- 数据显示:中国程序员是世界上最牛的程序员 606次阅读
- 程序员真正的价值是什么? 1609次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多