C++语言(又称CPP)与C语言的区别


C++几乎可以说是C超集C只有 少量功能C++不支持的,C++包含绝大多数C语言功能。


C++并不是C的超集,同理C也不是C++的子集,C中有少量功能是C++中没有的,这里只是近似看作是它的超集。

C不能算作是C++的原因即是C中有部分功能是C++不支持的。比如C++没有C99(一个C语言标准)中的变长数组(一种数组数据结构)


C语言编译速度更快、基础部分更容易学习。


C语言在国内实际能精通的人也就百来个,大部分人也就只能说能用、会用,至于能力达到什么地步,没人好下定义。这里的基础部分指C语言的指针及之前的内容,而不包括指针之后的结构体、共用体、预处理等。国内的C语言教程所谓的入门也就仅仅是讲到指针,而所谓的精通仅仅是讲到位域、预处理、内存管理等,而实际上,C语言的内容远远不只这些,这些所谓的精通,实际也都只是入门的毛皮,这也是为什么真正C语言入了点门的人不敢说精通或自己入门了C语言,仅仅说自己能会会用部分C语言功能。


C语言主要是面向过程编程,而C++主要是是面向对象(OOP),实质上这指的是C++C多了个类的管理。


C其实也可实现OOP思想,同样可以利用宏去实现某种程度的Generic Programming,只不过C++的语法比较简洁,自动地实现OOP/GP。



C语言更注重实现逻辑,而C++更注重程序整体设计。C++代码维护与管理更加高效。


C++设计之初的动机,也就是OOP思想。用户可以自定义类型,不断往里面添加和扩展,必须修改时不需要大改全局,只需要改动局部。


C和C++在基础语法上差别不大,但在语法细节上区别也不小。


其实大部分编程语言都只是语法细节上有所不同,比如for循环中变量初始化不同等。

往大了说,还有C++多出来的语法,关键字。更远的重载和虚函数。然后就是C++独立于C的概念:类、对象和继承、模板等了。


如果真要说C与C++有啥区别或者没啥区别,这真的不好说,如果说这两个语言哪个好,这更无法评价,因为这两个语言的存在必定有其存在的价值与意义。