1. c语言是面向过程的语言,而c++是面向对象的语言,那么面向对象的语言是什么?面向对象是一种编程范式,将数据和方法的设计体现在类中,将数据和方法封装在对象中,利用对象来设计和实现程序。
2. c和c++动态管理内存的方式不一样,c用的是malloc和free,而c++用的是new和delete。
3. c语言封装数据常使用的是结构体,而c++语言封装数据常使用的是类,c++的类不仅仅可以封装数据,还可以将操作数据的方法一并在类中声明。结构体的数据默认是公有的,任何函数都可以直接访问,而c++中类的数据默认私有的,只有其成员函数可以访问类的数据成员。
4. c++支持函数重载而c不支持函数重载,其原因是c++和c名字修饰的方法不同,比如
int function(int n, int m);
如果是c++名字修饰后其形式是_function_int_int而c语言名字修饰后其形式是_fuction,c语言名字修饰后是不带参数的。
5. c++有引用而c是没有引用的
6. c++所有非静态函数和全局变量默认是外连接而c变量和函数默认是内连接,如果是外连接的话,意味着在整个程序中都是可见的,而在c语言中内连接使得全局变量和函数只有在声明它们的源文件可见。
7. c++可以使用const定义的常量来开辟数组,而c语言不可以,原因是数组的大小(如arr[SIZE]中的SIZE)必须是一个编译时常量,而在c++中,const关键字定义的常量被认为是编译时常量,而c语言不是。
8. 局部变量的声明规则不同,c++可以什么时候用就什么时候声明,而c语言必须将变量声明在代码开头进行声明。
还有很多的不同,就不一一列举了。