C++和C语言的区别
正式解答:
从语法上讲: 不严格的说C是C++的子集,也就是C++包含C语言的大部分语法.当然由于C++和C都有不同的版本(ANSI/ISO),各编译器对标准支持的程度也不一样.C++不一定能百分百兼容C.
从编程思想上讲:
C是典型的命令式编程,也就是作者精确的设计出程序的每一个过程.程序一步步的执行.
C++严格的讲并不是完全的面向对象编程,而是支持多重编程范式的语言.用C++来编写程序可以是命令式的,也可以是面对对象的,甚至可以是函数式编程.(C也可以用特殊技术模似面向对象和其它的编程风格,但还是以命令式编程为主)
从应用上讲:
C一般应用于要求高效,资源有限,与硬件相关度较大贴近底层的环境.如操作系统,驱动程序和嵌入式系统的编写.
C++执行效率高,又具有良好的软件工程性.适用于大规模的应用软件,游戏引擎的开发.我们所使用的大部分应用软件和几乎所有的大型游戏都是用C++编写的.
C和C++都是伟大的语言.他们创造出了不计其数的高品质软件,正是这些软件,悄悄的改变着我们的生活.在这个新语言层出不穷,人心浮躁的时代.它们不仅仅是一种技术,更是一种信仰!
C++和C语言的区别:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++语言与C语言的兼容程度可使数量巨大的C语言程序能方便地在C++语言环境中复用。
C++的运用:
在科学计算领域,FORTRAN是使用最多的语言之一。但是C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。
C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。
在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域有一席之地。
C++对C语言有如下扩充:
(1) 增加了类(class)的概念。把编程理念由C的面向过程(function oriented)变成了C++的面向对象(object oriented)。这对维护和编写大型程序是至关重要的。
(2) STL 标准模板库。里面有string, vector, list, queue, stack,map等很多有用的类库。而且这些类库接口类似,例如都提供了iterator来访问成员,都有begin(), end(), size()等成员函数。方便记忆和使用。
(3) 支持模板(template)。例如只要编写一遍max()函数,就可以适用两个int, 两个double,或者两个char.
更多这方面的资料,可以参见(按由浅到深)"accelerated C++", "C++ Primer", "Effective C++"等。
C语言和C++主要有下列区别:
1. C语言面向过程,C++面向对象;
2. C语言比C++更依赖库函数。例如,以下是完全等价的输出语句:
C:
printf("%d\n",a);
C++:
cout << a << endl;
可以看出,C语言的输出需依赖库函数printf。
3. C语言比C++更方便格式化输出。例如,以下是两个完全等价的输出两位小数的语句:
C:
printf("%.2f\n",a);
C++:
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << a << endl;
可以看出,C语言只要一行代码即可实现输出两位小数,而C++却要四行代码!
1:c语言是面向过程的语言,c++面向对象的成分的语言,具体表现在于,C语言需要定义变量才将变量定义出来,而C++语言由于类的构造,思考思路是先分析类成员有哪些变量,然后,根据类对象进行操作。C++的类,是典型的面向对象程序设计
2:标准C语言有一个特点,就是定义变量必须在主函数的最前面,定义变量前不能有其他执行语句,否则程序就会报错。可是c语言发展的今天,一些编译器比如VC6.0和VS已经没有这种特性,只有少数编译器还保留着标C风格即:变量定义在最前面。这个特性在编写驱动程序中尤为突出,因为驱动程序只能用标准C语言来写,如果不按照标C来写,会发生蓝屏,黑屏等无法预知的错误。
C++就没有这些限制
3:定义变量的不同,C语言中如果想定义一个全局变量,即在主函数和子函数里面都能访问的变量,定义全部变量就可以了。而C++虽然也可以定义全局变量,但是基本上没人会这么写。一般定义一个类成员便利啊就可以了
C语言和c++发展到今天已经基本上不分家了,俩种语言相辅相成。一边的编译器不会严格区分C语言和C++的