C和C++的区别是什么?
在说之前,我们需要了解一下C++的发展历史,C++是怎么产生的呢?在C语言普遍应用的美国,随着程序员利用C开发的深入,发现C语言存在着一些缺陷(如类型检查机制较弱,缺少支持代码重用的语言结构等)造成了用C语言开发大型程序比较困难。如果让C程序员抛弃C学习一门完全不同于C的语言,这回造成C程序员学习成本的增加,而且之前用C开发累计的经验和较好的文档将会被抛弃,这肯定是不行的。为了克服C语言存在的缺点,贝乐实验室的Bjarne Stroustrup博士及其同事开始对C语言进行改进和扩充,将“类”的概念引入了C语言,构成了最早的C++语言(1983)。可以说C++是在C的基础发展而来,C是C++的一个子集。
既然C++是由C发展而来,那么学C++之前是否要先学会C呢?
完全没必要!但是如果学会了C学C++更简单。虽然C++是由C发展而来,但是C是面向过程的结构化语言,它注重的对象是算法和数据结构,而C++在C的基础上进行改进,引入了“类”这个概念,有了类则产生了对象,所以对于C++而言,首要考虑的是如何构造一个对象模型,让这个模型能够符合对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。正因为两个的侧重点不同,我觉得说C++相对于C是一门全新的语言也不为过。
C和C++哪个好?
怎么说呢,C++是更符合现代软件开发的需要,更符合软件工程学。而且C能编写的东西,用C++也能写,同时C++包涵了更丰富的设计概念,这些是C++的优势。但是在工业控制,硬件驱动开发,和操作系统等方面C的应用比C++更普遍。所以说各有各的优势,但总体上C++比C更先进。
现在我们知道了,C是面向过程的编程语言,C++是既面向过程又面向对象的编程语言,但是面向对象用得最多。只有JAVA才是纯面向对象的编程语言。
C/C++是效率优先的语言,编译时直接编译为机器可以运行的汇编语言,运行效率非常之高。同时C++是一门*的语言,C++之父曾说过,学习C++不是为了利用现成的框架和成熟的解决方案编写重复的代码,而是为了解决开创性的问题!C++非常庞大,学习成本也高,随着今后的发展,C++将引入更多的特性,所以要想在一个项目里面应用到C++的所有东西这是不可能的,也不切合实际。而是利用C++中的部分特性实现最优,这才是C++程序员应该做的!