C语言个人感悟以及与C++之间的区别之经典

简介: C语言个人感悟以及与C++之间的区别之经典

第一个:C与C++之间的关系


首先,要知道C语言的发展,它是由美国的贝尔实验室研制成功的,在当时是算是非常高级的语言,它本身很多新特性都让汇编程序羡慕不已,红极一时,后来很多语言都是采用C语言开发,包括Windows、Linux等。但是,随着计算机性能的飞速发展和提高,硬件配置与十几年前已经有天壤之别,软件规模也不断增大,很多软件的体积都超过了1G,例如VS等,用C语言开发这些软件显得非常困难。


最后,C++主要在C语言的基础上增加了面向对象和泛型的机制,提高了开发效率,能够适用于大中型软件的编写。


随着C++的快速发展,它的语法也越来越强大,C++的新特性也越发的显现出来,现就C++与C语言之间的关系列举如下:


78a033a802d349af87f5a3ead8b5fc4d.png

第二个:学习C语言到底能实现什么功能?


随着时间的发展,大部分的编程语言不是针对某个特定领域设计的,它们可以完成的事情也很多,比较通用化。但是在长期的实践过程中,这些编程语言逐渐都找到了自己的位置。


     例如:java可以用于网站开发,Android开发,PC软件开发,在大数据领域也可以使用。


               Python主要用于系统维护,网站后台开发,数据分析,人工智能,云计算等领域。


               Go语言可以用于服务器,通讯等较底层的开发,还用于网站后台开发。


今天的一个主角是C语言,并没有针对某个领域进行优化,就目前而言,C语言主要用于较底层的开发,例如:


1:Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发;


2:开发硬件驱动,让硬件和操作系统连接起来,这样用户才能使用硬件、程序员才能控制硬件;


3:单片机和嵌入式属于软硬件的结合,有很多使用C语言的地方;


4:开发系统组件或任务,用于支撑上层应用。


5:编写PHP扩展,增强PHP的功能。


6:如果对软件某个模块(例如算法和搜索部分)的效率要求较高,也可以使用C语言来开发。


    在项目的实际开发过程中,C语言也可以用于PC软件开发,做出类似QQ,迅雷等带界面的程序,但是由于C语言开发效率低,第三方库较少,实际项目中已经没有人这么操作了,大家基本上都在使用C++。


第三个:初学者的疑问有哪些?


     C语言只是一个工具,它的标准比较简单,只是提供了最基本的功能,如果希望开发出使用的程序,往往还需要学习其他方面的知识。


1、开发硬件驱动要学习数字电路,了解 Windows 或 Linux 内核,阅读硬件厂商的接口说明书;


2、从事嵌入式开发要学习数字电路、模拟电路、ARM、Linux、Qt等;


3、开发PC软件要学习Windows编程,了解 GTK。


第四个:如何学习底层知识


1、关于数据结构、算法、内存、线程、进程、通信、操作系统等这些基本的知识,重要的是理解概念,知道计算机是怎么回事,千万不要深入细节,把自己绕进去,耽误一两年的功夫,要尽早跳出来去做应用开发,找到兴趣点,获得成就感。


2、C语言主要是让你入门的,强化自己的编程思维,为以后的职业生涯打下坚实的基础,不是用来做开发的。真正学好C语言必须在实际的开发过程中,遇到问题,哪里理解不了,可以回来回顾这些知识,再深入学习。只有在实际开发过程中才能找到重点。


3、C语言主要的优势在于运行效率极高,这是底层开发最为看重的。有非常大的使用价值,加油。


     总结:学好C语言是学习其他语言的基础,拓实自己的基本功,然后再学习其他的语言将会事半功倍。


目录
相关文章
|
1月前
|
Java 编译器 C++
Java开发和C++开发有什么区别
Java开发和C++开发有什么区别
|
5天前
|
C语言 C++
【C++基础】 --- C++与C三目运算符的区别
【C++基础】 --- C++与C三目运算符的区别
9 1
|
9天前
|
存储 关系型数据库 MySQL
C语言/C++雷霆战机代码(终极版)
C语言/C++雷霆战机代码(终极版)
C语言/C++雷霆战机代码(终极版)
|
9天前
|
存储 关系型数据库 MySQL
C语言/C++实战项目雷霆飞机(代码改进)
C语言/C++实战项目雷霆飞机(代码改进)
|
9天前
|
存储 关系型数据库 MySQL
经典C语言/C++项目,雷霆战机
经典C语言/C++项目,雷霆战机
|
21天前
|
存储 C语言 C++
没学C++,如何从C语言丝滑过度到python【python基础万字详解】
没学C++,如何从C语言丝滑过度到python【python基础万字详解】
|
1月前
|
C语言 C++
[c语言&&c++]手写你自己的swap交换函数
[c语言&&c++]手写你自己的swap交换函数
15 0
|
1月前
|
存储 C++
面试题:C/C++引用和指针的区别?
面试题:C/C++引用和指针的区别?
19 0
|
1月前
|
存储 程序员 C++
面试题:C++堆和栈的区别?
面试题:C++堆和栈的区别?
16 0
|
1月前
来自C++primer5 的struct和class定义类的区别
来自C++primer5 的struct和class定义类的区别
7 0

相关产品

  • 云迁移中心