C语言到底有什么用?怎么才能学好?
10个回答
展开全部
用c语言比喻扳手,用扳手造车。。。很好的比喻,但车已经有人造了,如果不是搞研究,会维修和改进就好了。
1 简单使用扳手:造个小东西,知道扳手能干嘛
c语言在51单片机上是最容易入手的,贴近底层又不会非常难,而且程序运行实际效果一目了然,底层实现原理胸有成竹,心中有底。
2 了解什么是车,你再考虑自己造车有没有实际意义,我将linux操作系统比作车大家没意见吧。。
再往上学,有个linux操作系统是座大山,它用c语言写的还有汇编,这些牛人的理念是语言为操作系统服务,而不是操作系统应该适应语言,所以有gcc和g++这些编译,只要能改善操作系统和开发的它都能搞进来,所以又有了c++ 和c混合编程一说,linux一定要装,不然连车都没摸过你怎么知道修车
3造车有多复杂
就说为了提高系统效率和稳定等,操作系统里用复杂算法,非数学专业的只能哀叹,如果你一定要转牛角尖,那你还不如再重读个数学专业毕业后再来搞c。太复杂的算法有很多牛人或公司写了类库帮我们实现,就比如java,你用哪个类它里面就已经有一批精英写好了算法(你自己的c算法如果能有那效率,那你也是牛人一个了),你负责的是组装。造车对我等本科狗来说实在是太费时了,你的收入短期内不一定能成正比,如果智商不够可能你这辈子都将碌碌无为。。还是留给博士教授们搞吧
4了解车
学c是为了写程序,程序自然要在计算机上跑(或嵌入式,微机),所以当然得了解计算机结构和操作系统。不然随便你用什么语言写出的依然是垃圾。单片机的结构算入门了,然后pc机arm什么的,。操作系统也够折腾了,有的人为何从单片机无法跨越到嵌入式,就是这座山拦住了,(搞单片机的可以是汇编也可以c,但熟练用汇编并不代表他在操作系统上开发能用的好,操作系统的复杂性并不是因为它的语言,就像有人了解操作系统原理也能写出好的程序但他也可能没写过汇编一样的。)
但是作为学c,汇编的原理以后了解下很有意义,对操作系统原理深入也非常好,51单片机成了一种很好入门方式(各人有各人的方法,并不限于这里),ucos的书讲系统原理很好,但也有直接就学arm嵌入式的培训机构,看各人机遇。
5车周围乱七八糟的东西
车的主体是c语言,但并不是只有c,比如linux上的shell脚本等等,把c和汇编看成马达,shell看成方向盘,光是驾驭它就要学很多其他知识,但底层原理其实还是c。。就说服务器管理,软件开发都有很多方向,所以说c能学的完么?你学了一部分就会贪心的想学更多以满足自己求知欲,但是真太多了。
6专业知识
这没啥多说,就网络通信一方面就多的去了,各种协议名词解释等等,各人有各人的偏向。
7具体开发
底层:嵌入式就有驱动开发c,还有嵌入式软件工程师(偏向c++开发了),至于专门的硬件工程师就先不管了,uboot启动也算一方面。
后台:网络服务器,并发什么的epoll,libevent。。,再牛点分布式,云一大堆。而这些又有一部分偏重c++,用c维护可能会很痛苦,游戏方面说的最多是c++还有脚本协作什么,web我就不清楚了,java,c#吧
界面:gtk(cku) ,qt(c++库),window算个特例有很多,再深入,图像算法这也是专业领域了,到这种程度用什么语言已经不是应该纠结的了。
傻瓜式:还有很多人根本不懂编程,但他们用开发工具也能做出东西,像网页和一些手机游戏,创意好的赚钱并不比搞c的弱,这个不是专业和艺术级别,了。搞艺术的毕竟是少数牛人。
数据库:这个得单独提到,感觉它又像另一套开发,也是很多很多,去了解下数据库要学什么架构就知道了
8类库
即便只搞c也有类库,比如gtk界面,除大牛以外你总不可能自己写怎么在界面上画画的底层实现。现在都喜欢搞驱动,也许是没那么多类库什么的要学吧,但对硬件结构的了解也是必须的,没有那种只包含单方面知识,c所以很难学。
其他语言的类库就更多了,而且经常用,投身it业,学无止境。。
1 简单使用扳手:造个小东西,知道扳手能干嘛
c语言在51单片机上是最容易入手的,贴近底层又不会非常难,而且程序运行实际效果一目了然,底层实现原理胸有成竹,心中有底。
2 了解什么是车,你再考虑自己造车有没有实际意义,我将linux操作系统比作车大家没意见吧。。
再往上学,有个linux操作系统是座大山,它用c语言写的还有汇编,这些牛人的理念是语言为操作系统服务,而不是操作系统应该适应语言,所以有gcc和g++这些编译,只要能改善操作系统和开发的它都能搞进来,所以又有了c++ 和c混合编程一说,linux一定要装,不然连车都没摸过你怎么知道修车
3造车有多复杂
就说为了提高系统效率和稳定等,操作系统里用复杂算法,非数学专业的只能哀叹,如果你一定要转牛角尖,那你还不如再重读个数学专业毕业后再来搞c。太复杂的算法有很多牛人或公司写了类库帮我们实现,就比如java,你用哪个类它里面就已经有一批精英写好了算法(你自己的c算法如果能有那效率,那你也是牛人一个了),你负责的是组装。造车对我等本科狗来说实在是太费时了,你的收入短期内不一定能成正比,如果智商不够可能你这辈子都将碌碌无为。。还是留给博士教授们搞吧
4了解车
学c是为了写程序,程序自然要在计算机上跑(或嵌入式,微机),所以当然得了解计算机结构和操作系统。不然随便你用什么语言写出的依然是垃圾。单片机的结构算入门了,然后pc机arm什么的,。操作系统也够折腾了,有的人为何从单片机无法跨越到嵌入式,就是这座山拦住了,(搞单片机的可以是汇编也可以c,但熟练用汇编并不代表他在操作系统上开发能用的好,操作系统的复杂性并不是因为它的语言,就像有人了解操作系统原理也能写出好的程序但他也可能没写过汇编一样的。)
但是作为学c,汇编的原理以后了解下很有意义,对操作系统原理深入也非常好,51单片机成了一种很好入门方式(各人有各人的方法,并不限于这里),ucos的书讲系统原理很好,但也有直接就学arm嵌入式的培训机构,看各人机遇。
5车周围乱七八糟的东西
车的主体是c语言,但并不是只有c,比如linux上的shell脚本等等,把c和汇编看成马达,shell看成方向盘,光是驾驭它就要学很多其他知识,但底层原理其实还是c。。就说服务器管理,软件开发都有很多方向,所以说c能学的完么?你学了一部分就会贪心的想学更多以满足自己求知欲,但是真太多了。
6专业知识
这没啥多说,就网络通信一方面就多的去了,各种协议名词解释等等,各人有各人的偏向。
7具体开发
底层:嵌入式就有驱动开发c,还有嵌入式软件工程师(偏向c++开发了),至于专门的硬件工程师就先不管了,uboot启动也算一方面。
后台:网络服务器,并发什么的epoll,libevent。。,再牛点分布式,云一大堆。而这些又有一部分偏重c++,用c维护可能会很痛苦,游戏方面说的最多是c++还有脚本协作什么,web我就不清楚了,java,c#吧
界面:gtk(cku) ,qt(c++库),window算个特例有很多,再深入,图像算法这也是专业领域了,到这种程度用什么语言已经不是应该纠结的了。
傻瓜式:还有很多人根本不懂编程,但他们用开发工具也能做出东西,像网页和一些手机游戏,创意好的赚钱并不比搞c的弱,这个不是专业和艺术级别,了。搞艺术的毕竟是少数牛人。
数据库:这个得单独提到,感觉它又像另一套开发,也是很多很多,去了解下数据库要学什么架构就知道了
8类库
即便只搞c也有类库,比如gtk界面,除大牛以外你总不可能自己写怎么在界面上画画的底层实现。现在都喜欢搞驱动,也许是没那么多类库什么的要学吧,但对硬件结构的了解也是必须的,没有那种只包含单方面知识,c所以很难学。
其他语言的类库就更多了,而且经常用,投身it业,学无止境。。
展开全部
C语言是所有电脑编程语言的根本,而且是执行效率最高的。你要有书看,了解基本概念,做下习题,修改代码,看看效果,多实践,这样才有效果,可以资料里找我,聊指导C语言怎样的学习方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
作用:最好的比喻就是学C语言好比学中文就要学拼音,学英语就要学音标。
高手:多写,多练,多思考,多看高手写的代码,多学学数据结构与算法。
高手:多写,多练,多思考,多看高手写的代码,多学学数据结构与算法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是一种语言,通过预处理器,编译器,汇编器,连接器可以将你写的C程序编译成机器可以看懂的代码,从而达到控制,计算等作用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是一门编程语言,作用就是编程。
看书,动手写程序
看书,动手写程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-27
展开全部
俗的说就是,C是一个语言平台,都需要通过编译器成机器指令,即0101..给CPU执行相关的操作,用途就是设计开发,开发硬件平台.多看书,多分析别的的程序即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询