关闭

C和C++到底有什么关系

4076人阅读 评论(0) 收藏 举报

注:转载于C语言中文网

C++ 读作”C加加“,是”C Plus Plus“的简称。顾名思义,C++是在C的基础上增加新特性,玩出了新花样,所以叫”C Plus Plus“,就像 iPhone 6S 和 iPhone 6、Win10 和 Win7 的关系。

C语言是1972年由美国贝尔实验室研制成功的,在当时算是高级语言,它的很多新特性都让汇编程序员羡慕不已,就像今天的Go语言,刚出生就受到追捧。C语言也是”时髦“的语言,后来的很多软件都用C语言开发,包括 Windows、Linux 等。

但是随着计算机性能的飞速提高,硬件配置与几十年前已有天壤之别,软件规模也不断增大,很多软件的体积都超过 1G,例如 PhotoShop、Visual Studio 等,用C语言开发这些软件就显得非常吃力了,这时候C++就应运而生了。

C++ 主要在C语言的基础上增加了面向对象和泛型的机制,提高了开发效率,以适用于大中型软件的编写。

C++和C的血缘关系

早期并没有”C++“这个名字,而是叫做”带类的C“。”带类的C“是作为C语言的一个扩展和补充出现的,目的是提高开发效率,如果你有Java Web开发经验,那么你可以将它们的关系与 Java 和 JSP 的关系类比。

这个时期的C++非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序(名字叫 cfront),先将C++代码”翻译“为C语言代码,再通过C语言编译器合成最终的程序。

随着C++的流行,它的语法也越来越强大,已经能够很完善的支持面向对象编程和泛型编程。但是一直也没有诞生出新的C++编译器,而是对原来C编译器不断扩展,让它支持C++的新特性,所以我们通常称为C/C++编译器,因为它同时支持C和C++,例如 Windows 下的微软编译器(cl.exe),Linux 下的 GCC 编译器。

也就是说,你写的C、C++代码都会通过一个编译器来编译,很难说C++是一门独立的语言,还是对C的扩展。

图1:C语言和C++的关系

关于C++的学习

从“学院派”的角度来说,C++支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。就面向过程编程而言,C++和C几乎是一样的,所以学习了C语言,也就学习了C++的一半,不需要从头再来。

2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

C与C++的区别与联系

(1)C++与C语言相比有何特点 的的
  • zhonghua18517
  • zhonghua18517
  • 2014-08-13 14:50
  • 3522

浅谈学习C语言与学习C++语言的关系

本文写给C或C++语言初学者。论坛中,常有初学者问“学C++语言前是否要先学C?”。我认为这是个伪问题。问题本身的答案并不是提问人真正想要的。回答问题本身很简单:“当然不需要”。因为C++是一门独立的编程语言,它在语法、构建环境和运行环境上都无需依赖任何其它语言。至于说它是“C语言的超集”,那只是一...
  • steedhorse
  • steedhorse
  • 2007-12-17 02:26
  • 10066

C++与C语言的区别

C++是C语言的升级版。C++保留了C语言原有的所有优点,并增加了面向对象的机制。 C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的...
  • u014760201
  • u014760201
  • 2014-08-26 11:02
  • 4013

C语言实现C++ 中的类

华科的一道面试题:C语言如何实现C++中的类
  • forever__1234
  • forever__1234
  • 2017-03-11 21:58
  • 1759

C语言和C++的区别与对比

C是C++的基础,C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。 差不多是win98跟winXP的关系。C++是在C的基础上增加了新的理论,玩出了新的花样。所以叫C加加。 C是一个结构化语言,...
  • u011225629
  • u011225629
  • 2015-08-04 10:03
  • 5126

新手须知 C、C++和VC++之间的区别

下面介绍的是C、C++、VC++ 三者之间的区别。供大家参考。 C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代。由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰了很多其它程序设计语言。我们平时使用的大多数软件都是用C语言开发的。 很多后来出现的一...
  • QQ1449301756
  • QQ1449301756
  • 2015-08-12 12:53
  • 1329

C++和C的联系与区别

C程序的设计首先考虑的是如何通过一个过程,对输入进行运算处理得到输出。     对于C++,首先考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出或实现过程控制。     因此,...
  • zhiliaoniu
  • zhiliaoniu
  • 2014-06-30 12:34
  • 502

C++ 学习基础篇(一)—— C++与C 的区别

程序的学习学无止境,只掌握一门语言是远远不够的,现在我们开始C++的学习之路,下面先看下C++ 与C 的区别 一、C++概述 1、发展历史       1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面...
  • zqixiao_09
  • zqixiao_09
  • 2016-04-24 20:36
  • 15369

C与C++的区别

在很大程度上,标准C++是标准C的超集.实际上,所有C程序也是C++程序,然而,两者之间有少量区别.下面简要介绍一下最重要的区别.    在C++中,民,局部变量可以在一个程序块内在任何地方声明,在C中,局部变量必须在程序块的开始部分,即在所有"操作"...
  • wqvbjhc
  • wqvbjhc
  • 2009-04-24 15:23
  • 35789

C和C++哪个更快?

身边的人一般说道这个问题,总会马上第一个回应我,C语言的速度更快。但实际上,这个问题并不是可以这样单纯的来回答的。下面就我个人的一些体会以及看书时了解的内容,对这个问题做一个粗浅的整理和总结。如有疏漏,欢迎指出。 一、什么是C,什么是C++ 说起来,我觉得这是一个非常难以回答的问题。因为我们在这样说...
  • usownh
  • usownh
  • 2015-02-02 13:15
  • 972
    个人资料
    • 访问:398148次
    • 积分:8160
    • 等级:
    • 排名:第2917名
    • 原创:316篇
    • 转载:12篇
    • 译文:89篇
    • 评论:105条
    【目录索引】

    闲适音乐

    博客专栏
    最新评论

    Email: 457086306@qq.com