为什么要学c语言 孙志刚 学c语言为什么感觉很困难
为什么要学习C语言?第一讲 C语言简介及为什么要学习C语言?为什么要学C语言呢 你有认真想过吗?为什么要学习c语言?它具有哪些特性?为什么要学习C语言?
本文导航
现在还有必要学c语言吗
1.简约
虽说用好c语言很难,但是对于c语言的入门是很容易的,用一句话来形容c语言,我觉得是易于上手,难于精通,C语言在语法上的使用很简单,因为它不是很高级,也不是很庞大,在第二版(K&R)中,它的参考手册仅仅用了49页就描述了整个C语言,没有迭代器,没有装箱....C语言的这种“低级”让我们在学习时会把重点放在自己控制上,所以什么都会选择自己动手,而在用java或python时,我的第一感觉,往往是,“嗯,我有哪些工具可以使用?”太多的工具选择,有时候是件坏事,因为没了许多锻炼的机会,而且很难抓住重点,有的时候什么都没有反而是件好事。<!--more--
2,原理
操作系统是一个程序员应该学好的一门课,但是我们在学习的那些操作系统概念很难深入理解,或者比较抽象,比如饿死哲学家之类的,仅仅知道概念,是不能解决实际问题的,比如,你可能学过一些进程的概念,或者内存分段之类的,那我问你,windows进程问什么没有僵死?在windows中如何修改一个进程中的数据?Linux的fork和Windows的createProcess有什么不同?linux有线程吗?你写一个我看!你的理论不管用了,因为你没有实践过.所以,我觉得学习操作系统最好的方式就是用c语言进行系统调用,这种方式在unix和linux下能获得更好的学习方式,因为win32-sdk不适合学习,更适合开发,在unix下,你能用你的操作系统知识与fork(),exe(),wait()等系统调用很好的结合.
而且不仅仅是操作系统你,在学习c语言的时候,你不得不接触一些系统结构的知识,比如字节对齐,比如c语言的地址空间,你就会知道堆栈这种东西,如果不是递归,是可以没有的.你就会知道虚拟地址到实际地址的转换.这些在java和c#中变得透明,但是透明是为了方便开发,透明对一个学习者是有害的,想象今后的云计算,将会是怎样的开发?它将培养更多的码农。
3,数据结构与算法
用C语言来学习数据结构和算法在合适不过了,用指针去写吧,用Java和c#下的学习更像是会用。你可能会说C++更好,但是你的类(变量+函数)本质跟c语言中的结构体+函数,没有区别,除非你用模板,多态,重载,我才承认你在用c++,但是你的重点篇了,我们不是在讨论学习数据结构与算法吗?你现在是在学习语言特性了。
4,更好的过渡
本文所写的是为什么学习C语言,作为一个学生,我觉得说什么C语言开发更高效,就是个笑话,因为,谈到开发,又开始谈金钱,时间,一大堆的东西,你会问,为什么不是java或python?开发是开发的事,你学的扎实还不会开发?我只是说c语言的路线更适合学习,你又会问钱都挣不上学什么?我记得有一次一个来做java培训的人说,“我们培训java,你们把自己做成一个商品,推销出去。”。我觉得很可笑,我们要做的不是商品,最起码是一支股票。所以害怕学的东西找不到工作的人,用一切时间来犹豫徘徊。
c语言学习从哪里来
C语言是一种广泛应用的计算机语言,相信观看我们教程的各位,没有不知道什么是C语言的;对于C语言的历史这里就不做介绍了,我们说一下C语言的标准。
·k&RC标准:这是1978年由美国电话电报公司(AT&T)贝尔实验室正式发表的C语言标准,是zui早期的C语言标准。
·ANSI C/ C89标准:我们所看到的大部分的教科书中,用到的也是这个标准,而且,我们的教程中也是按照这个标准讲的。1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages -- C。因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。
·C99标准:1999年1月,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C语言的新标准,名叫ISO/IEC 9899:1999 - Programming languages -- C ,简称C99标准。这是C语言的第二个官方标准。C99标准较C89标准增加了一些新的特效,如Bool类型、long long、long double等等。如果大家想了解标准新增的详细内容,可以在网上查找相关的文章。
·C11标准:2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C语言的新标准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C ,简称C11标准,原名C1X。这是C语言的第三个官方标准,也是C语言的zui新标准。
这些只是一些C语言的标准,不理解也没关系,也不会影响我们程序的编写。
2.我们为什么要学习C语言
C语言作为一种高级语言,现在好多公司编程都使用C语言,尤其是嵌入式这个领域。大家可以从网上看看世界编程语言排行榜,C语言基本一直都没下过前三名。
从学习的角度来说,学习C语言是很必要的,C语言有如下优势:
① C语言比较灵活,可以直接使用指针。
② C语言是跨平台的语言,几乎同样的代码可以运行在不同的平台,如Windows、Linux、Unix等等。
③ C语言的执行较其他的高级语言速度快,而且开销小。
⑤ 学好C语言,有助于我们锻炼编程的思维,加强我们的逻辑能力。
小编是做嵌入式开发的,在嵌入式开发中差不多有90%的软件代码使用C语言编写的,当然也有一部分代码使用C++和汇编编写的。汇编也一般是使用芯片厂家写好的Boot程序,顶多是对写好的Boot做部分的修改。
c 语言有必要学么
1、首先是鸡汤,也就是为什么要学C语言。你可以先问自己,为什么我要学C语言?是为了应付考试,还是为了应聘,还是为了提高自己的编程能力。我想说的是,如果你打算以后长期从事计算机方面的工作,你就必须会一门编程语言,让C来做你的启蒙伴侣再好不过了。为什么?
通用。
语法简单,C语言学起来真的很简单,关键字就那么几个。
贴近硬件,让学会编程的同时,对计算机的有初步了解。
C语言无处不在。电饭锅,路由器,操作系统 and so on 。
对以后学其他语言都是有很大帮助的,具体你会知道什么是堆,什么是栈,内存的分配与释放。。。。。。这些都是所有语言都会涉及到的。
2、学习方法。多写代码,多写代码,多写代码,重要的事说三遍!有一种感觉加“码感”。还有一件重要的是:多思考,多总结,多看别人的文章。推荐你去【CSDN】,或者【博-客-园】开通博客,记录自己的学习点点滴滴。
遇到很头疼的知识点怎么办,先跳过去,过一段时间再回头来看。
实在解决不了就去Google,百度。你的问题很特别,搜不出来,就去论坛提问吧。
提问的艺术:不要问一些百度就能出来的语法问题。
具体学习方法:
第一阶段《C Primer Plus》蓝皮+郝斌的C语言视频
我没推荐经典的《The C Programming Language》,因为我举得《C Primer Plus》比较??乱坏悖?比徽饫锏??率嵌酝耆?跹д哂泻艽蟀镏?摹?茨阕约旱幕?“伞:卤蟮氖悠狄彩呛苤匾?模?跹д咄??枰?桓觥捌啊保?徊揭徊降恼兆呕??詈蟛呕嵝闯鲎约旱拇?搿?/p>
第二阶段
《C与指针》学完C,不熟练指针,就是白学。
《C语言深度剖析》来自陈正冲前辈,这是一本关于C语言的“野史”,很有味道,强烈推荐。
《C缺陷与陷阱》多看别人掉坑史,前车之鉴后事之师。
第三阶段数据结构结构学习。
c语言是什么样的语言
我在网上看到一些,也许对你有帮助:
1)相比较其他的编程语言(像c++,java),c语言是个低级语言。从总体上来说,低级的编程语言可以让你更好的了解计算机。
2)设备驱动程序和操作系统只能用c语言来编写。现在,你可能还从来没有编写过一个设备驱动程序或者一个操作系统,但是如果你需要去修改他们的时候,怎么办?
3)如果你想要得到一份编写微控制器程序的工作的时候,该怎么办?他们都是用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语言为什么感觉很困难
(1)应用软件。Linux操作系统中的应用软件都是使用C语言编写的,因此这样的应用软件安全性非常高。
(2)对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,比如网络程序的底层和网络服务器端底层、地图查询等。
(3)系统软件和图形处理。C语言具有很强的绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。
(4)数字计算。相对于其他编程语言,C语言是数字计算能力超强的高级语言。
(5)嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。
(6)游戏软件开发。游戏大家更不陌生,很多人就是由玩游戏而熟悉了计算机。利用C语言可以开发很多游戏,比如推箱子、贪吃蛇等。
上面仅列出了几个主要的C语言应用领域,实际上,C语言几乎可以应用到程序开发的任何领域。