C语言怎么学?

开学要上C语言课,怎么才可以学好?... 开学要上C语言课,怎么才可以学好? 展开
 我来答
风过西林
推荐于2018-04-21 · TA获得超过333个赞
知道答主
回答量:79
采纳率:0%
帮助的人:66.5万
展开全部
很多人对学习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数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书

参考资料: 以前收集的文章,忘了出处了,个人觉得不错

悉锦禾盼波
2019-08-02 · TA获得超过3559个赞
知道大有可为答主
回答量:3142
采纳率:25%
帮助的人:191万
展开全部
请问你是自学的吗?自学的话比老师教的话那就累多了,多做一些没的必要的事。其实C没什么难的,前面都是一些概念性的东西,听以前一些人说C难就难到指针,在前期的指针不算什么,你如果学过数据结构的话,那就晓得什么叫指针了,什么单向链表啊,双向链表,二叉树,树,图。完全都是指针、结构体建立起来的。那个地步的指针的指向问题对人才有点意义。其实,C不难学,我是过来人,概念不要克记,要克用,用到了,根本不需要去记的,对书上的一些概念性的东西,可以做做测试,看看是不是那么一回事,即便加深印象,运用起来也自如,不管对于C,还是对于什么,学编程一定要多思,多去思考问题。遇到难题不要逃避去克服,逃避的话他永远都是你的障碍。只有迎面挑战生活的人,才有可能战胜生活。不知道你是不是自学的,自学的搞起又点难的。但选学校的话眼睛要擦亮了,不要看他广告打的响不响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4800e2a80eb
2019-07-20 · TA获得超过3731个赞
知道大有可为答主
回答量:3117
采纳率:30%
帮助的人:456万
展开全部
转载
(一)语言入门:
《C++
Primer》
最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)
适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。
《The
C++
Programming
Language》/《C++程序设计语言》
最新版本:第三版特别版
简称TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The
C
Programmer
Language》区分开来)
《Essential
C++》
《Accelerated
C++》
这两本薄一些,都是不错的选择。《Accelerated
C++》本人没有读过,从各方面的评价来看,完全值得推荐。
以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
(二)进阶A:
这个路线侧重于语言本身
《Effective
C++》
最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)
简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The
Pragmatic
Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott
Mayer的《Effective
C++》,可能还要《More
Effective
C++》”。
《C++
Coding
Standards:
101
Rules,
Guidelines,
and
Best
Practices》/《C++
编程规范》
个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。
我的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不会过时,人们将广为传诵它制定的101条戒律。
还不知道他的简称,也许“101”会成为一个候选者?
提到《Effective
C++》,那么另外三本书一一浮出水面:
《More
Effective
C++》
《Exceptional
C++》
《More
Exceptional
C++》。
新书《Exceptional
C++
Style》也是值得一看的好书。
上述几本书,一本也不应该放过。
个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。
(三)进阶B:
这个路线侧重于程序库。
《The
C++
Standard
Library》/《C++标准程序库—自修教程与参考手册》
听说过STL吗?这本书会教你最基本的,也是最重要的STL的使用。这本书,应该是必读的。
《Effective
STL》
会使用STL还不够,还必须知道什么时候选择什么STL组件,这是STL使用的必读书。
《Generic
Programming
and
the
STL:
Using
and
Extending
the
C++
Standard
Template
Library》/《泛型编程与STL》。
这本书理论性较强,但是真的很严谨,而且并不是非常难懂。理解其中对于Concept的解释,将是非常重要的。
《C++
STL》
这不是讲述使用程序库的,而是讲述程序库实现原理的。肠胃不好的,需要慢慢吸收。
这个路线的书,仍然是建议按顺序阅读。
进阶A、进阶B两个路线应该是可以并行的。
其他进阶参考书
提出这些参考书,只是避免争议,也为开阔视野,笔者并不曾完全读过所有的。
《Thinking
in
C++》/《C++编程思想》
这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试一下该书。
以下几本书基本上涉及的都是语言本身,大体上可以按照以下的顺序阅读。
《C++必知必会》
如果早一年,这本书将是重量级的,然而它被101和《Exceptional
C++
Style》盖过一头。
《C++
Gotchas:
Avoiding
Common
Problems
in
Coding
and
Design》/《C++程序设计陷阱》
这又是一本我未曾读过,而且广受好评的书。
《STL
源码剖析》
这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。
高级:
《The
Design
and
Evolution
of
C++》/《C++语方的设计和演化》
简称D&E,内容并不艰深,Bjarne的书,仅此,就值得一读。
前段时间,互动网曾8块一本(人民币)贱卖此书,现在好像没了。
《Inside
The
C++
Object
Model》/《深度探索C++对象模型》
C程序员读后一定会觉得C++原来并不神秘。
《C++
Template》
在阅读STL、Boost或者Loki的源代码之前,请仔细阅读本书,它可以减轻一些阅读的烦恼。这本书是讨论C++模版的权威。
《Modern
C++
Design
Generic
Programming
and
Design
Patterns
Applied》/《C++设计新思维——泛型编程与设计模式之应用》
简称MCD。在阅读MCD之前,建议先阅读一下《C++
Template》。
《对象揭秘:Java、Eiffel和C++》
你对C++不满吗?这本书可以部分地帮你完成抱怨的目标。也许它还可以让你不迷信C++。
最后,一份C++标准文档也是应该加以咀嚼的。
还有一些书籍,并不能简单的归于C++,也难以在纯粹的书本学习中加以掌握。《Design
Patterns》/《设计模式》一书就归于此类。
所有上述的书籍,要么谈论C++语言本身,要么谈论STL的,要么兼而有之(当然严格讲STL也是C++语言非常重要的一部分)。偶尔,某些书中条目也会涉及实际工程。这些书并不是C++软件开发的全部,但是他们很重要。阅读这些书,未必需要化费太多的精力,有时候是会困难,但也有时候会很快速。
最后,编程语言并非计算机科学技术的全部,尤其对于在校的学生来说,打好基础、开阔视野都是非常重要的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
势如云5j
2008-02-22 · TA获得超过2030个赞
知道小有建树答主
回答量:601
采纳率:0%
帮助的人:491万
展开全部
我是一个程序员,参加工作的时间也不长。对于学习C,我有一些粗浅的看法如下,仅供参考:
1.掌握基本的理论知识。
刚开始学习编程时,掌握基础理论的知识是非常重要的。不然就会学的不系统,不完全。其实做程序员做到高级的,并不是编程有多厉害,而是他有足够的理论知识来解决别人的问题。书我推荐用用谭浩强的《C语言程序设计》,现在出到第三版了,有配套的习题解答《C程序设计题解与上机指导》。这本书确实非常经典,讲的也非常仔细,对于初学者来说最好不过了。
2.多动手,勤动手。
当然,光掌握理论知识是远远不够的,要多动手编程。在这个过程中才能逐步消化、吸收所学的理论知识,强化自己的所学,并掌握一些基本的方法、技巧。这个过程也许枯燥,但这几乎是每个做程序员的人必须经历的过程。
3.掌握与编程相关的知识。
例如掌握一些计算机组成原理、逻辑设计、数据结构、算法等这些方面。这些方面学得好,十个里面有十个是高手。这也是由低阶像中、高阶方面发展的过程。
4.平时
平时多看些与编程有关的书籍,这样既可以开拓视野,又可以加深印象。上网时也可以看看CSDN,看看论坛里别人是怎么解决问题的。

此外:建议下一个好一点版本的TC,或者用VC++6.0.网上都有下的,或者在迅雷里搜索。个人建议用VC++6.0,因为学过C后以后用C++时就不用花时间去熟悉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
裘芙伊溪
2020-04-02 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:902万
展开全部
一步一步来...
学不懂就多看书,多问!
C语言是面向过程的,所以基础知识和硬件知识都是要学的!
数据是通过什么方式传递的,还有怎样被传递都是要掌握的!
C语言最最重要的一点就是学会这个思维,只要C语言学好了其他的编程语言都很简单了(道理都一样),当然你学了其他编程语言学C也会很快的。
不要把它想得好难好难放开去学就是了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(25)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式