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程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。
C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
标准C++中的字符串类取代了C标准C函数库<’cstring>头文件中的字符数组处理函数。
C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。
C和C++区别举例
头文件
C语言中所有的头文件后缀都带.h
C++中系统文件后缀不带.h,用户定义的可以带。
C++标准库中的类和函数是在命名空间std中声明的。使用时要包含using namespace std;
输入输出
C语言需要类型匹配输出
举个例子:int a = 10; float b = 0.365;输出需要对应的%d,%f来输出而C++具有强大的输入输出流,上述情况直接用cout << a << b;输出即可.
字符串
相比于C语言,C++的字符串操作更方便,不在需要使用C语言的一些字符串操作函数操作,比如:
定义字符串 String s1 = “abc”;String s2 = “def”;
用S2拷贝S1时:s1 = s2;
拼接S1,S2时:s1 + s2;
字符串还可以直接用”==”,”!=”
操作更方便简单,其底层已经为用户封装好了方法,拿到接口直接使用即可。
结构体 宏 等等一系列的东西得到优化与改善,功能更强大,更严谨,更好用。
内联函数与宏函数的区别:
https://blog.csdn.net/Romantic_C/article/details/81489479