C++与C语言的区别

  • Post author:
  • Post category:其他




1.C++的创建历程:

20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。

在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。



2.C++与C的不同点(语法的变化):



宏观角度的变化:



1.C++基本支持C语言的所有语法


2.C++支持面向对象的编程思想


3.C++支持运算符重载和引用


4.C++支持泛型编程(模板支持)


5.C++支持异常处理(catch,try)


6.严格的类型检查(void*不能与其他类型进行转换,其它类型的数据不能为枚举赋值)



细节的变化:



1.文件扩展名:

C:

.c .h


C++:

.cpp .C .cc .cxx



2.编译器:

g++ 大多数电脑需要额外安装:ubuntu sudo apt-get g++

gcc 也可以继续使用,但需要添加-lstdc++



3.常用的头文件:

#include < iostream > C++原生的头文件不带

.h

以示与C的区分

C语言的头文件也能继续使用#include < cstdio >(stdio.h也能继续使用)



4.数据的输入输出

cout << 数据/变量

endl 换行

cin >> 变量

多个数据之间使用,要用 << 和 >> 分割

不需要再取地址,不需要点位符,C++会自动推到

scanf/printf也可以继续使用



5.增加的名字空间:

std::标识符 // 临时使用

using namespace std;//导入空间,只需要导入一次



6.结构体的变化

1.在定义结构对象时,struct关键字可以省略,不需要再typedef

2.结构体中可以定义成员函数,只能通过结构对象(->,

.

)调用,再成员函数中可以直接使用成员变量



7.枚举、联合

1.在定义枚举、联合对象时,enum、union可以省略

2.整形数据不能为枚举赋值

3.联合中也可以有成员函数,用法与struct一致



8.操作符别名

在某些欧洲语言中,由于字母比26个字母多,因此就占用键盘上的

‘~,&’

等符号,国际标准化组织就规则了这些运算符的别名,即使有些运算符不存在,也可以正常的进行编程

&& == and

| | == or

{ == <%

} == %>



3.C++与C哪个更优秀:



技术层面:

从技术层面上来看,C相对于C++有一定的速度优势,在一些小型的嵌入式系统中,运行速度差异较大,所以在一些小型的嵌入式系统中,C比C++用的广泛一些,但对于一些中大型程序而言,使用C++可以极大的减小开发的复杂度,其实也就是使用面向对象的思想,用C语言实现而已,所以C语言比C++更适合做底层的一些东西,例如驱动之类的,C++更适合做一些中大型程序。



商业层面:

因为C++更适合做中大型程序,所以在做一些商业性的软件,C++会比C更有优势,但在底层上,C更有优势



总结:

其实,与其说C与C++哪个更优秀,如果换个角度来看,倒不如说C与C++哪个缺点更多,在我看来,他俩不相上下,不然也不会存活至今了,时间是考验质量最好的东西了,只能说他俩各有所长。



版权声明:本文为qq_41258050原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。