| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 840 人关注过本帖
标题:[转帖]怎样学习C语言
只看楼主 加入收藏
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
结帖率:92.86%
收藏
 问题点数:0 回复次数:2 
[转帖]怎样学习C语言
怎样学习C语言

很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C语言如此重要呢?

第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。
第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。
第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。

那么究竟怎样学习C语言呢?

1:工欲善其事,必先利其器
这里介绍几个学习C语言必备的东东:
   一个开发环境,例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。
   一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。
   除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。

2:葵花宝典
学习计算机语言最好的方法是什么?答曰:读程序。
    没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。

3:登峰造极
写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。
是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。

搜索更多相关主题的帖子: C语言 转帖 学习 算法 
2004-08-18 16:42
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

看到这个贴子不错,最近好象论坛上又有人在说C该怎么学,现在有没有必要再学C,学C++不是更好吗?所以转来大家看看。连同回贴我也转了一部分(另一些与主题无关所以没转)。

第2楼 回复于2004-7-15 11:29:56


??你说的是C?为什么不倡导C++呢?感觉C已经过时了,面临被淘汰。

------------------------签----名---- 好好学习,天天想上... 楼主,给分呀!

第4楼 回复于2004-7-15 16:27:35


我说得确实有点夸张,不过楼上说的只能算是C++的向上兼容性,毕竟C++从C发展而来,吸收了他的精华(不包括编程思想),没必要重写这些库 也是为了能编译C程序。但从编程思想和以后所受的的技术支持来看,学习C++和使用它已经成为必然,而且学习C语言并不是学习C++的必要条件,所以还是学习C++更好一点吧,已经越来越没有学习C的理由了(当然,他很容易入门)。现在最资深的程序员都是学习C起家的,对C有很深的感情,但毕竟时代是发展的,如果以后C++面临同样的情况,我会毫不犹豫的抛弃他(是不是很狠心?哈哈)。

------------------------签----名---- 好好学习,天天想上... 楼主,给分呀!

第7楼 回复于2004-7-22 11:40:20


我个人认为,虽然C++和C是两件东西,但学C++不能象学Java那样,上来就是对象。 因为C++并不是什么快速开发语言,不学习C,很难理解指针,类型,结构等这些在C++里很灵活的东西,而相对其它语言这些部分都不是很深入,只要有个句柄之类的概念就可以了。 如果把C++完全象Java,C#等其他面向对象语言看待,那么C++的优势何在?如果没有C,如果C++是这样横孔出世的,那么它可以说是最糟糕的面向对象语言了。

------------------------签----名---- /*热心斑竹*/ E_mail:manesking@163.com MSN:sunxiangpost@hotmail.com

第8楼 回复于2004-7-26 23:25:50


对于初学者还是一个比较好的建议,让初学者更大程度了解C语言的作用和用途,不管以后学什么面向对象都是以它作为基础,学习一些思想很有必要

第9楼 回复于2004-7-27 17:56:26


提出C过时的人,可以学一点关于编译的知识,你会对所有编程语言有更全面的认识.

第10楼 回复于2004-7-27 18:01:11


对版主提出的C学习见意我同意,但是要达到登峰造极并不是那么容易的,只有同硬件结合起来全面考虑,才可能使C程序更加高效可靠.尤其是针对底层的具体应用.而这一点恰恰是最难的.

第24楼 回复于2004-8-12 17:18:18


居然有人说C快过时了,简直是笑话!不会用C语言的人只能算是程序员队伍里打杂的,不能算是真正的程序员!用这样那样的可视化的编程软件写了几个像样的程序,不能算成功!不要被微软的可视化界面蒙蔽阿,兄弟们!要想真正搞懂系统,学C吧!

第25楼 回复于2004-8-17 22:13:01


用VC++的话,编DOS下的程序怎么画图啊?就没有TC里的graphics.h了,那有什么库函数来代替?

第27楼 回复于2004-8-18 11:42:13


回答25楼:windows里用GDI,是WinAPI函数。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-08-18 16:50
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用knocker在2004-08-18 16:50:47的发言:

看到这个贴子不错,最近好象论坛上又有人在说C该怎么学,现在有没有必要再学C,学C++不是更好吗?所以转来大家看看。连同回贴我也转了一部分(另一些与主题无关所以没转)。

第24楼 回复于2004-8-12 17:18:18


居然有人说C快过时了,简直是笑话!不会用C语言的人只能算是程序员队伍里打杂的,不能算是真正的程序员!用这样那样的可视化的编程软件写了几个像样的程序,不能算成功!不要被微软的可视化界面蒙蔽阿,兄弟们!要想真正搞懂系统,学C吧!

第25楼 回复于2004-8-17 22:13:01


用VC++的话,编DOS下的程序怎么画图啊?就没有TC里的graphics.h了,那有什么库函数来代替?

搞懂系统在于学习API而不在学C,24楼的同志太偏激了,他本人可能连打杂的分都没有。 说得有点硬来的意思。25楼的同志也太……如果要用3D编程,graphics怎么编呢?

2004-08-18 16:58
快速回复:[转帖]怎样学习C语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029956 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved