如何学习学习c语言,现在学这个是否还必要
c语言是基础。如果想学c++要有这个基础,而Java这样高级语言的也是从c++改造得到。可以说,高级语言都有c语言的影子,因为运行高级语言的操作系统环境大部分代码都是c或c++设计的,经常会用到c/c++兼容的函数调用。c语言的灵活性是设计底层驱动代码、单片型cpu裸奔代码比较适用的。可以说,在接触其他语言设计程序的初期,可以无视c语言知识,但如果继续深入,是绕不开的。
如果需要从事编程方面的工作,C语言是必须学习的。如果只是想了解编程,那么学习一些其他的语言也无可厚非。
每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了。除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识。它能给我们提供的裨益,,简单列举如下:1.相比较其他的编程语言(像C++,JAVA),C语言是个低级语言。从总体上来说,低级的编程语言可以让你更好的了解计算机。4.C的程序比其他用别的语言写的程序,实现相同的功能,它用的代码行数更少,而它带来的运行效率却更快。有时候,你的程序所需要的速度,只有C语言能做到。5.如果你学习过C语言,你就能学习现在任何的高级编程语言。因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)。6.因为C语言已经存在很多年了,它有广泛的使用团体并且有大量的现成代码可以利用。这就使你能在过去程序的基础上,快速和高效的编写新的算法和函数。7.C语言是一个开源组织的语言。一个开源组织的产物--LINUX,就是用C语言写的。如果你会C语言,你就能参加这个组织并且还能向众多的开源组织投稿,比如参加Source Forge并且给他们投稿。8.C语言是唯一一个向你阐述指针的本质的语言。而C#和Java干脆跳过了指针这个题目。可是指针确实使C语言变得更加强大。9.找编程开发方面的工作时,C语言仍然是最普遍需要的语言。所以它值得你花时间去学会它。10.任何里面有微处理器的设备都支持C语言。从微波炉到手机,都是由C语言技术来推动的。
一、要读就读好书,否则不如不读
所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)
Kernighan和Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。
如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。
切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。
二、Unix/Linux还是Windows,这是个很大的问题
不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。
对于一个只懂得Windows基本操作、连DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。
所以我建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。
等你学完一本C语言的教材,你一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛苦的,你需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格
归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。
三、万事俱备,你就是东风
书已选定,环境配置完成,正所谓万事俱备,只欠你自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。
学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。出了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的书上的例子以及改造之后的例子,还有自己“创造”的例子,都应该仔细地归类保存,并且要在源代码中写上简短的注释,阐述这个例子的意图。
例子之后就是习题了,我建议初学者把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。
也许你认为这样学习太慢,其实不然。学得细致就不用走回头路,等你学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,你应该完成数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。以我自己举例,阅读《Windows核心编程》时(我只阅读了3/4的内容),除了抄书上的代码,还自己写了很多例子,一共有5574行(用unix下的wc工具统计),时隔多日,我早已记不清Windows的系统编程了,但只要花几分钟翻出以前的代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。
仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,你还要具体情况具体分析。
写到最后,还有非常非常重要的一点没有提及——代码风格,从最开始学习就必须强迫自己模仿最优秀的代码风格。
看了这篇文章之后,我很有感触。想现在学习C语言都好多年了还是没有什么进步,上面都说道了。建议楼主置顶,让更多的人更快更好的学习C语言。C语言是编程的根基,也是最为深奥和灵活的语言。有了这篇文章的帮助相信大家会有一个学习方法。
第一门语言还是学习C语言比较好,能很好的明白一些编程的道理
不过不学它也不是不可以
学c语言是打基础,当然有必要
菜鸟学编程,c语言的。。。
大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学得好?学习C语言始终要记住“曙光在前头”和“千金难买回头看”,...
我想学习C语言做软件,但是不知道从何下手,请高手指点
建议你去看清华大学谭浩强 编写的 C语言基础 这本书通俗易懂 而且很基础 ,还有配套的习题书,边看书边做练习 一点点的就会了
学习C语言有什么基本要求,C语言是什么
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型...
学习编程,从何入手
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。 (2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。 (3)VC是微软制作的产品,与操作系统的结合更加紧密。 缺点 对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来...
C语言在大学教学中有何重要性?
3.培养编程思维:C语言的学习过程需要学生运用逻辑思维和抽象能力,培养学生的编程思维。这对于学生将来从事其他编程语言的学习和应用具有重要意义。4.跨学科性:C语言不仅在计算机科学领域有广泛应用,还与其他学科如数学、物理、电子工程等密切相关。学习C语言有助于学生拓宽知识面,提高跨学科解决问题的能力...
学C语言有什么基本要求吗?
曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好? 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,...
如何自学编程
选择一种编程语言。初学者一定要从主流语言开始学习,比如中级语言C和C++。这两种语言是任何一名合格、专业的程序员都必须掌握的,因为它们称得上是软件开发界的主流。但是最好不要从高级语言开始学,如Java,因为这些语言对于初学者来说难度未免太高(高级语言可以以后再学,但是C语言和C++应该作为你的基础)...
通过你对C语言的简单程序设计的学习,谈一下你对程序设计和程序设计语言...
6.每学一个知识,事前问学长学姐当年心得,事中问同学有何感受、感想,事后多总结。别人不会但你会的,你就尽心去教别人。可能你以为这个你已经很了解了,但往往在教别人时,别人问了点问题你才发现原来自己这个也不时很懂啊...7.常和老师一起谈话,除了问不懂的问题,尽量少开口多听他讲。如果...
目前高一,想学C++,但是完全是小白,该怎么学
希望能帮上你,嘻嘻嘻嘻嘻嘻 我想学c++,但是完全是个小白,不知道从何学起。 先从C语言学起啊, 网上有视频教程。 或看书,入门可以看 谭浩强的 《c语言程序设计》. 多动手写程序联系。 还有就是不要死读书,还多东西,理解即可。 学完C语言的 语法,指针等。 再学习c++就ok 。 还可以学M...
大学生想要自学编程,有什么好的学习方法?
先确定目标,学前端还是后端。前端就是和用户交互的。后端大部分都是框架结构数据库。确定好了方向后,开始学习。初学者可以跟着网上的教程一起学习。(51自学网,菜鸟程序,B站都有详细的教程)不会的问题,看不懂bug,上论坛是(CSDN)问。一般都会得到回复,你也可以跟他们进行讨论交流。不怕不会,...
家洪小白: 非常有必要,c语言不仅仅是基础,更是让习惯计算机语言的大门!虽然现在企业级应用基本c++,跨平台主流java,作为初学者,应该以c去熟悉更低层的东西,杜绝过早的接触vc.vb,那只会让你感觉都会,其实啥都精
黄山市13392321574: 怎样学好C语言? - ?
家洪小白: 1.学C语言重要的是你的逻辑思维和坚持学习的恒心,学编程特别是语言就要多看,多思考,多练,也就是多敲代码. 2.就C语言来说,是编程者应该好好学的一门语言,因为它是你日后要学的其他一些更高级的面向对象的编程语言的基础,学好...
黄山市13392321574: 怎么学习计算机C语言 - ?
家洪小白: C语言是一个实用性很强的语言.你如果想要学好它,就得下一翻功夫.可是大多数人都认为它太难学了.所以就没有认真的学,也当然学不好了.即使是学计算机的学生也不能把它学的很好,这是因为他们没有掌握学习这门语言的方法.我也...
黄山市13392321574: 怎么样学习c语言? - ?
家洪小白: 1、首先准备一台PC,学编程一般对PC没有太大的要求,一般主流的配置就好.2、有了电脑之后,就得考虑安装什么操作系统了,主流使用的操作系统是windows,不过在这里不建议学习C编程使用windows,建议使用Linux.所以学习者最好...
黄山市13392321574: 怎样才能学好C语言 - ?
家洪小白: 我也一年多前才开始学的 现在已经能拿些奖了我就把我的学习过程大概给你说一下:首先是买了一本关于学习c语言的数(我买的是<<c语言程序设计>>第三版,谭浩强出的----个人认为还可以);然后自己看一章节,遇到不懂的反复的阅读下...
黄山市13392321574: 怎么能学好C语言??
家洪小白: 这位兄台..我告诉你..你只要记住四个字:熟能生巧 学C其实是有规律的.刚开始学是可能会感觉困难的..但是你一定要坚持下来..就算看不懂..那就上机敲代码.. 根据我的经验.C有一个入门的门槛.只要你跨过这个门槛.那么接下来你学就非常轻松了. 但是开始要跨过这个门槛是非常困难的...必须要反复的看书..反复的上机练习..反反复复. 那么..你突然有一天发现你都懂了..之前看不懂的但是有印象的现在也懂了..懂得举一反三了.. 那么恭喜你..你已经入门了..接下来学习就非常快了...可以自己顺手的编一些小程序了..最重要的是你已经对C感兴趣了....祝你成功!!!加油咯!!!!
黄山市13392321574: 怎么样学好c语言? - ?
家洪小白: 第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它. 第二:C语言能够让你深入系统底层,你知道的操作系统...
黄山市13392321574: 如何学好C语言??
家洪小白: 如果是想通过计算机等级考试 就买一本全国计算机等级考试二级试题认真做就可以了 当然也要加强上机实践. 怎样才能学好C语言 第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去...
黄山市13392321574: 怎样学好C语言啊?能不能给一点详细的建议 - ?
家洪小白: 1.先学习C语言的基础知识.现在正在学C语言的在校学生可以直接进入第2步学习. 2.按照《C语言程序设计入门学习六步曲》进行上机练习. 3.在上机练习时要养成良好的编程风格.点击查看C语言的编程风格 4.积极参加C、C++兴趣小组,...
黄山市13392321574: c语言怎么学?
家洪小白: 1、扎实的基础 数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序.程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论....