语言是典型面向过程(Procedure Oriented)的编程语言,C++ 则是典型面向对象(Object Oriented)的编程语言,当然 C++ 也支持面向过程编程。
1.C 语言:
C 语言诞生于 1969 年在贝尔实验室诞生,C 语言是面向过程的编程,它最重要的特点是函数,通过 main 函数来调用各个子函数。程序运行的顺序都是程序员事先决定好的。截至本书完书时,当前 C 语言的最新稳定版本为 C18,目前力扣已经支持 C11。
2.C++ 语言:
C++ 诞生于 1979 年,设计者为 Bjarne Stroustrup.
C++ 是面向对象的编程,类是它的主要特点,在程序执行过程中,先由主 main 函数进入,定义一些类,根据需要执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句)。以类驱动程序运行,类就是对象,所以我们称之为面向对象程序设计。面向对象在分析和解决问题的时候,将涉及到的数据和数据的操作封装在类中,通过类可以创建对象,以事件或消息来驱动对象执行处理。最新的 C++ 语言标准为 C++ 20,目前力扣已经支持 C++ 17。
3.两者之间的比较:
C++ 既继承了 C 强大的底层操作特性,又被赋予了面向对象机制。它特性繁多,支持面向对象语言的多继承、对值传递与引用传递的区分以及 const 关键字,现代 C++ 编译器完全兼容 C 语言语法。
C++ 能够大部分兼容 C 的语法,且二者之间相同的关键字和运算符功能和作用也几乎相同;二者之间的内存模型与硬件比较接近,几乎都可以直接操纵硬件。栈、堆、静态变量这些概念在两种语言都存在。
C 为面向过程的编程语言,不支持面向对象,不支持继承、多态、封装。
类型检查更为严格,C 语言中的类型转换几乎是任意的,但是 C++ 编译器对于类型转换进行非常严格检查,部分强制类型转换在 C 语言编译器下可以通过,但在 C++ 编译器下无法通过。
C 和 C++ 中都有结构的概念,但是在 C 语言中结构只有成员变量,而没成员方法,C 的成员变量没有权限控制,该结构体的变量对所有调用全部可见;而在 C++ 中结构中,它可以有自己的成员变量和成员函数,C++ 对类的成员变量具有访问权限控制。
增加了面向对象的机制、泛型编程的机制(Template)、异常处理、引用、运算符重载、标准模板库(STL)、命名空间(避免全局命名冲突)。
应用领域:对于 C 语言程序员来说,程序的底层实现和内存分布基本上都可见,所以一般常用于直接控制硬件,特别是 C 语言在嵌入式领域应用很广,比如常见的驱动开发等与硬件直接打交道的领域,C++ 可以用于应用层开发,用户界面开发等与操作系统打交道的领域,特别是图形图像编程领域,几乎所有的高性能图形图像库都是用 C++ 实现的。
阅读量:2015
点赞量:0
收藏量:0