张赐荣——一位视障程序员。
赐荣小站: www.prc.cx

張賜榮

张赐荣的技术博客

博客园 首页 新随笔 联系 订阅 管理

谈一谈C语言和C++两者之间的关系,学习C++之前要不要先学C语言?
【文 / 张赐荣】

C语言和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 with class (带类的 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 的扩展。
关於 C/C++的学习
从“学院派”的角度来说,C++支持面向过程程序设计、物件导向程序设计和泛型程序设计,而 C 语言仅支持面向过程程序设计。
就面向过程程序设计而言,C++和 C 几乎是一样的,所以学习了 C 语言,也就学习了 C++的一半,不需要从头再来。
没有任何程序设计基础的读者,建议先从 C 语言学起,不要贪多嚼不烂。等你熟悉了 C 语言,能编写出上百行的代码,就对程序设计有些概念了,这个时候再去了解 C++究竟在 C 语言基础上增加了什么,你就站在了一定的高度。
有程序设计基础的读者,相信你自己已经能做出正确的判断。

posted on 2022-02-19 21:35  张赐荣  阅读(1342)  评论(0编辑  收藏  举报

感谢访问张赐荣的技术分享博客!
博客地址:https://cnblogs.com/netlog/
知乎主页:https://www.zhihu.com/people/tzujung-chang
个人网站:https://prc.cx/