C和C++的特点和区别
(1)C语言特点:
1.作为一种面向过程的结构化语言,易于调试和维护;
2.表现能力和处理能力极强,可以直接访问内存的物理地址;
3.C语言实现了对硬件的编程操作,也适合于应用软件的开发;
4.C语言还具有效率高,可移植性强等特点。
(2)C++语言特点:
1.在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言;
2.可以使用抽象数据类型进行基于对象的编程;
3.可以使用多继承、多态进行面向对象的编程;
4.可以担负起以模版为特征的泛型化编程。
(3)区别
1、文件区别:C源文件后缀 .c;C++源文件后缀 .cpp
2、返回值: C默认返回int型 ;C++ 若无返回值,必须指定为void
3、参数列表:C默认接收多个参数;C++默认为void,不接收任何参数
4、缺省参数:C不支持给函数参数指定默认值;C++支持
5、C++支持函数重载,C不支持
(而C++支持重载的依仗就在于C++的名字修饰与C不同,例如在C++中函数int fun(int ,int)经过名字修饰之后变为 _fun_int_int ,而C是_fun,一般是这样的,所以C++才会支持不同的参数调用不同的函数;)
6、C指针;C++多了引用
7、C是面向过程的,C++是面向对象的。
8、结构:C中的struct和C++的类,C++的类是C所没有的,但是C中的struct是可以在C++中正常使用的,并且C++对struct进行了进一步的扩展,C语言结构只有成员变量没有成员方法,C++结构有自己的成员变量和成员函数。使struct在C++中可以和class一样当做类使用,struct的成员默认访问修饰符是public,而class默认的是private;
9、动态管理内存:C是使用malloc/free函数,C++除此之外还有new/delete关键字
10、C++全部变量的默认链接属性是外链接,而C是内连接;
11、C中用const修饰的变量不可以用在定义数组时的大小,但是C++用const修饰的变量可以(如果不进行&,解引用的操作的话,是存放在符号表的,不开辟内存);