c语言编程入门教学
C语言是不是世界上最好的编程语言?真的永远不会过时吗?
问一种语言是不是世界上最好的编程语言,实际上这种问法是不恰当的。C语言也好,Basic语言也好,或者是python语言也好,不存在好与不好之说,只能说哪个更适合你,哪种编程语言更擅长哪种领域而已。
如对于C语言,应该说是一种比较重要的、比较基础的编程语言。如果你以后的工作方向更侧重于硬件方面(如单片机开发)、操作系统底层通信开发、复杂信号处理算法等等方面,那学习C语言是确实比较合适的。C语言是一种编译型语言,运行效率比较高,在这些领域更合适些。
但C语言的的缺点也比较明显,相对于Python等动态类型的编程语言来讲,它入门相对较大,自己在学习过程中必须要有足够的耐心、恒心,多多练习、多多调试才能积累更多的编程经验,得心应手的解决实际的工程问题。
在C语言是否会过时方面,应该也不存在过时之说,各种编程语言的编程思想方法(如程序结构都有顺序、循环、选择等结构,数据结构的组织)等思路方面都是相通的。学好C语言,对于你将来学习第二种编程语言肯定是有好处的,能够帮助你更快的学习理解其它的编程语言思想,会有极大的促进作用。
不请自来,作为一名长期使用C语言进行开发的老司机,来回答一下这个问题。
答主本人从2000年开始接触使用C语言,那还是486计算机还是天价的时代,上一次计算机课和过年一样兴奋。迄今已经近20年的时间,很多其它语言有的衰落了,有的起来了,有的是起起落落。
像pascal、basic、fortran等等,现在有的学生可能连听说过都没有,现在几乎已经消失了,像C/C++/java/python/php/javascript等等都是经过大浪淘沙的胜利者,尤其是C语言,生命力是最顽强的。因为几乎所有的计算机系统底层都是用C语言开发,尤其是linux/unix以及其衍生系统都是以C语言为主的操作系统,windows系统也是如此,只不过微软花了大价钱开发了VC,但是还是以C语言为基础的封装的。
后来的嵌入式操作系统更是离不开C语言,所有嵌入式的BSP都是以C语言编程的,固件库也是用C语言封装的。包括已经一统手机天下的android操作系统,所有的driver层还必须是C语言开发,因为android的底层就是linux,android不过是在linux上开发优化了j***a虚拟机,然后用j***a语言开发了UI库。其实严格来说android并不是新的操作系统,而是一个适用于手机的UI库。
正如一个城市建筑群,所有建筑的地基都是用C语言打下的,你能把地基丢掉吗,显然是不行的,C语言青春永驻也是自然而然的事情。
答案是:不会,上面已经说了,C语言是可以直接和硬件驱动语言,是所有操作系统的基础。除此之外,C语言的效率是除汇编语言之外效率最高的语言,即使目前计算机的算力已经非常廉价的今天,在某些要求苛刻的关键计算任务上,首先仍然是C语言,甚至有时使用C语言有时并不是完全因为效率,而是因为可控。高级语言由于封装了操作系统的某些特性,比如[_a***_]安全、内存管理等等。这些高级特性再某些时候运行结果可能是未知的,比如有可能内存分配失败,线程得不到及时调度等。对于实时性要求比较高的场景,这些不可预知的问题都是致命的。而C语言的简单直接,就显得格外重要了。
c语言永远不会过时,为什么呢?要从我们解决问题的思维方式和方法上来看。人类的思维方式和方法基本原理都一样,都是通过抽象,分类,然后按照一定的步骤去执行。实际这就是计算机里对程序的定义。而c语言基本覆盖了这些,并且简洁,优美。它是我们解决问题的基本语言,什么都可以做。
而大家看到的很多高级语言,实际上他们更注重的是应用,让开发人员能更快,更方便的去开发应用。大家知道,应用是在不断变化的,也是在不断的被淘汰,而基本原理是不会变的,学会c语言,可以做到以不变应万变。
首先,C语言是世界上最好的编程语言,它是其他的编程语言需要膜拜的编程语言,它是编程语言世界“神一样”的存在,永远不可能过时,因为它是指引初学者学习编程语言的“灯塔”。
其后任何的编程语言,都有C语言的身影。它们出现,由于时间的推移和应用的特殊需要,C语言搭建的家园必须扩建,但是它们的基石离不开C语言,至少摆脱不了C语言的影子。
C语言是最接近底层(汇编语言)的编程语言,它编译后的效率极高。
C和C++语言都有指针,特别是函数指针,而其他高级语言极力反对的就是指针的存在。
在嵌入式领域,中断向量实际就是函数指针。
C语言的函数指针和结构及联合,构成了完美的“COM接口技术”,故在嵌入式领域,C/C++编程语言是其他任何编程语言无法取代的。
菜农认为,没有指针的编程语言,就别在嵌入式领域混了!
如图所示,菜农在2003年在PIC上用宏汇编实现的“HPL语言”(早已完美地应用到产品上),它也跑不出C语言的影子!
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/11284.html