浅谈C、C++及其区别
一、闲说C
c语言被命名为c,因为c语言是由"Ken Thompson"发明的b语言派生的,b语言是由bcpl语言派生的。
1967年,剑桥大学的Martin Richards简化了CPL语言并制作了BCPL(基本组合编程语言)语言。他用B语言编写了第一个UNIX操作系统。
1972年,美国贝尔实验室的D.M.Ritchie最终设计了一种基于B语言的新语言。他把BCPL的第二个字母作为该语言的名称,即C语言。
c语言非常简洁,只有32个关键字、9个控制语句和34个运算符。
具体来说,C是一种结构化语言,重点是数据结构和算法的实现。设计C程序的主要考虑因素是如何通过过程对输入(或环境条件)执行输入(或实现过程(事物)控制)。
C语言可以做任何事情,但最大的用途是编写操作系统和编译器等。
C语言非常有效。很多时候你需要考虑一些基本的事情,比如内存管理。很遗憾你不得不花很多时间做这些。作为一种低级编程语言,非常直接的内存管理可以通过指针进行。此外,许多语言都是用c来设计的,例如perl、java、Python。
C语言是一种多功能编程语言,它结合了高级语言的特性和汇编语言的特性。 1978年以后,C语言被移植到大,中,小和小型计算机上。它可以用作工作系统设计语言,编写系统应用程序,或者用作应用程序设计语言,编写不依赖于计算机硬件的应用程序。 。它具有广泛的应用和强大的数据处理能力,不仅在软件开发方面,而且在各种科学研究中,C语言适用于编写系统软件,3D,2D图形和动画,特定应用,如MCU和嵌入式系统开发。虽然C语言旨在实现操作系统软件,但它也被广泛用于开发便携式应用程序。
二、闲说C++
1970年代中期,Bjarne Stroustrup人在剑桥大学计算机中心工作。他使用了Simula和Algol,并联系了C。他对Simula的类系统有着深刻的感受,对Algol的结构有着很好的研究,对操作效率的重要性有着深刻的理解。Bjarne Stroustrup的初衷不仅是简单、正确、可靠地编程,而且是高效、便携地运行。以C为背景,以Simula为基础,符合他的思想。1979年,比约梅·斯古斯特鲁普来到贝尔实验室,开始在课堂上将C提升为C。1983,该语言正式命名为C++。
由此可见,c++是c++的延续和发展,是强大的,能够对大规模应用的发展作出响应。它可以面向对象,也可以兼容于c,也可以面向过程。
C ++是一门复杂且难以掌握的语言,不仅在语法方面,而且在其四种编程思维模型中,包括:基于过程,基于对象,面向对象,通用范式。因此C ++既高效又灵活;它既可以是面向对象的,也可以是面向过程的。
在中国大陆程序员圈中,C++通常被视为“C+PLUS PLUS”,而西方程序员通常阅读为“C+PLUS Plus”和“CPP”。它是一种广泛使用的计算机程序设计语言。C++是一种支持静态数据类型检查和多个编程范例的通用编程语言。它支持程序编程、数据抽象、面向对象编程、通用编程和其他编程风格。
c++是最流行的编程语言之一。其应用领域包括系统软件、应用软件、驱动程序、嵌入式软件、高性能服务器和客户端应用程序以及视频游戏等娱乐软件。
第三,C和C ++之间的联系和区别
过程导向思维:分析解决问题所需的步骤,并使用函数依次实现这些步骤。
面向对象思维:将构成问题的事务分解为单个对象。建立对象的目的不是要完成一个步骤,而是要在整个问题步骤中描述某个事务的行为。
从上面的描述可以看出,实际上,面向对象和面向过程是思考解决问题的两种方式,而差异主要在思维的角度。
C语言是面向过程的编程语言,其最重要的特点是函数,它通过主函数调用每个子函数。程序运行的顺序由程序员预先决定。
c++是面向对象编程。班级是它的主要特征。在程序执行期间,首先由主主函数输入,定义一些类,并根据需要执行类的成员函数。过程的概念已经被淡化(事实上,仍然有主要函数的陈述),以类驱动程序的形式运行,而类是对象,所以我们称之为面向对象编程。面向对象分析和解决问题时,所涉及的数据和数据的操作都封装在类中。通过类,可以创建对象,并由事件或消息驱动对象执行处理。
C和C ++之间最大的区别在于他们有不同的思维方式来解决问题。 C语言主要用于嵌入式领域,驱动开发等直接处理硬件领域。 C ++可用于应用层开发,用户界面开发等于操作系统领域。
C++不仅继承了C的强大的底层操作特性,而且赋予了教科书式的面向对象机制。它具有多重继承等特点,在其他面向对象语言中很少见,在传递到musan的值和引用之间有区别,在const关键字等。C++就像一把瑞士军刀,或者是一个工具箱,它为你提供尽可能多的工具,使不熟悉它的人不知所措,知道如何使用它的人就像鱼在水中。C++的各种特性使得它非常适合于编译底层数据结构、算法、库等。它是系统软件开发和数学模型构建的有力武器库,被称为工业程序设计语言。
c++到c的“增强”表现在以下几个方面:
类型检查更严格。添加了面向对象的机制。添加了通用编程的机制。添加了异常处理。添加了运算符重载。添加了标准模板库(STL)。添加名称空间以避免全局命名冲突。
4。C++与C语言的不相容性
c的大部分代码可以应用在c++上,而c++的代码不能应用在c上记住,大多数,不是全部。
C ++是C的超集。虽然C ++与C兼容,但C ++也与C不兼容。
4.1 变量声明的位置
在C语言中,变量声明和代码是分开的,必须在函数的开头声明。
在c++中,变量可以在任何地方声明,只要信誉原则得到保证。
4.2结构结构方面
用结构定义变量
Structure structure{INT I; Floating X;
在c中声明一个struct变量应该这样写:struct mystruct a;
在C++中,不需要添加结构:MyStultA。
一种兼容的用法是:
Type structure _ structure I; Floating X; } Structure;
然后使用mystruct定义变量。枚举类型(enion)与union类型(union)相同。
在C++中,Struts结构支持成员函数的定义,而不是C++中的。此外,应该注意C++中成员函数的默认访问描述符是公共的,不同于类的默认访问描述符。类的默认访问描述符是私有的。
4.3 bool类型值
c++中有池(或布尔类型);c中没有这样的布尔类型,它们都是数字类型!需要注意的是,真是非零(例如,1552,-5,-2等),虚值为0。
4.4 注释的不同
C中的注释有一个/*......*/;
c++中的注释包含两种/*。....................*/和//.
4.5强制性数据类型转换
C中强制转换的形式是:(类型)变量;
C++也可以以类型(变量)的形式使用。
4.6 赋值
c语言中的赋值只有一个:=;
除了在C ++中使用=之外,您还可以使用()。例如:int x(5);等于:int x = 5;我认为当在C ++中初始化对象时初始化属性是一个对象时使用它,因此它可以用于基本类型。
4.7 函数
C语言中的函数没有参数的默认值。C++中的函数具有参数的默认值的概念。注意参数的默认值和函数的重载之间的区别。
c语言中函数的定义有古典形式和标准形式两种形式。c++只支持标准形式。
Standard form: int string(int x,float y){...}
Typical form: int string (x, y) int x; floaty;...
c++函数必须知道或定义才能使用,因为c++是强数据类型语言。在c语言中,允许在函数被知道和定义之前调用它们。
4.8运算符和关键字常量
&运算符最基本的意思是取地址,而c和c++都支持这种语法。然而,在c++中,&也可以表示引用。使用引用的概念,函数调用可以作为左值。例如:
int &rtux()......rtux()=5;
上述表达式在C++中是正确的,但在C语言中是非法的。
与const关键字不同的是,在c++类函数中,该函数可以称为const,表示此函数不改变类中的任何属性。如:无效不变(不变);c不能有这样的出生。
4.9 extern说明符
在某些版本的C中,您可以在程序中多次使用全局变量,而无需使用外部描述符。但是,在C++中,除了定义全局变量外,还应在其他模块中使用外部化。
4.10 void指针
在c语言中,空指针可以被指派给任何类型的指针,但是在c++中,它不是,但是可以先执行强制的数据类型转换并指派一个赋值。