学过C语言和C++的人肯定知道两者是有区别的,看过很多关于C++书籍C语言学习资料,也参考过一些C++学习网站,其实C语言和C++还是有很多区别的,总结一下这两者具体有什么样的区别吧!(上网查过很多,我觉得容易一幕了然的就放着里面了,大家一起看看吧!)

C语言与C++的区别有很多:

1.继承:C++支持多继承,C语言类只能继承一个基类中的实现但可以实现多个接口。

2.数组:声明 C语言数组和声明 C++ 数组的语法不同。在 C语言中,“[]”标记出现在数组类型的后面。  

3.数据类型:在C++中bool类可以与整型转换,但C语言中bool 类型和其他类型(特别是 int)之间没有转换。long 类型:在 C语言中,long 数据类型为 64 位,而在 C++ 中为 32 位。

4.struct 类型:在 C语言中,类和结构在语义上不同。struct 是值类型,而 class 是引用类型。

5.switch 语句:与 C++ 中的 switch 语句不同,C语言不支持从一个 case 标签贯穿到另一个 case 标签。

6.delegate 类型:委托与 C++ 中的函数指针基本相似,但前者具有类型安全,是安全的。

7.从派生类调用重写基类成员。 base  

8.使用 new 修饰符显式隐藏继承成员。

9.重写方法需要父类方法中用virtual声名,子类方法用override 关键字。  

10.预处理器指令用于条件编译。C语言中不使用头文件。 C语言预处理器指令  

11.异常处理:C语言中引入了 finally 语句,这是C++没有的。  

12.C语言运算符:C语言支持其他运算符,如 is 和 typeof。它还引入了某些逻辑运算符的不同功能。  

13. static 的使用,static方法只能由类名调用,改变static变量。  

14.在构造基类上替代 C++ 初始化列表的方法。

15.Main 方法和 C++ 及Java中的 main 函数的声明方式不同,Main而不能用main

16.方法参数:C语言支持 ref 和 out 参数,这两个参数取代指针通过引用传递参数。  

17.在 C语言中只能在unsafe不安全模式下才使用指针。  

18.在 C语言中以不同的方式执行重载运算符。

19.字符串:C语言字符串不同于 C++ 字符串。

20.foreach:C语言从VB中引入了foreach关键字使得以循环访问数组和集合。  

21.C语言中没有全局方法和全局变量:方法和变量必须包含在类型声明(如 class 或 struct)中。  

22.C语言中没有头文件和 #include 指令:using 指令用于引用其他未完全限定类型名的命名空间中的类型。  

23.C语言中的局部变量在初始化前不能使用。  

24析构函数:在 C语言中,不能控制析构函数的调用时间,原因是析构函数由垃圾回收器自动调用。 析构函数  

25构造函数:与 C++ 类似,如果在 C语言中没有提供类构造函数,则为您自动生成默认构造函数。该默认构造函数将所有字段初始化为它们的默认值。  

26.在 C语言中,方法参数不能有默认值。如果要获得同样的效果,需使用方法重载。


另外也有区别是这样说的:

1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。

2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。

3,特别是C++中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C++中的。C语言标准中不包括图形处理。

4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。

4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。

5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。

6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。

7,C++对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。

8,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。

9,调试功能强大,并且方法多样。