C++|C和C++的区别你知道吗?

C++|C和C++的区别你知道吗?

文章图片

C++|C和C++的区别你知道吗?

文章图片

C++|C和C++的区别你知道吗?

文章图片

C++|C和C++的区别你知道吗?

相信很多小伙伴看到C和C++都会有这样的疑问 , “这两个到底有什么区别 , 明明看着差不多呀”这个问题看起来很简单 , 但是还真是一时半会说不清的 。
百度百科说到▼C语言是一门面向过程的计算机编程语言 , 与C++、Java等面向对象编程语言有所不同 。 C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言 。 C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植 , 而代码质量与汇编语言相当 。 C语言一般只比汇编语言代码生成的目标程序效率低10%~20% 。 因此 , C语言可以编写系统软件 。
一、C 和 C++ 到底是什么关系?
C 语言和 C++ 是两个不同的编程语言 , 只不过内容上有一定的重叠 。 C++ 和 C 语言本来就是两种 不同的 编程语言 , 但 C++ 确实是对 C 语言的扩充和延伸 , 并且对 C 语言提供后向兼容的能力 。 对于有些人说的 C++ 完全就包含了 C 语言的说法还是有点别扭的 。
C++ 一开始被本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)发明时 , 起初被称为 “C with Classes”  , 即「带类的 C 」 。 很明显它是在 C 语言的基础上扩充了类class等面向对象的特性和机制 。 但是后来经过一步步修订和很多次演变(如下图所示) , 最终才形成了现如今这个支持一系列重大特性的庞大编程语言 。

就像经典书籍《Effective C++》一开头就说的 , 现如今我们提到 C++  , 都应该视其为一个庞大的「 语言联邦 」 , 最起码包含如下几个重要的组成部分:面向过程编程、面向对象编程、泛型编程、元编程、函数式编程、STL标准库 。 这其中的第一部分「面向过程编程」 , 正是 C++ 提供的向后兼容 C 语言的部分 , 所以你能看到市面上在售的大部分讲 C++ 编程的书 , 一开始前几个章节基本都是在讲「面向过程编程」的内容 , 包括但不限于:数据类型、变量、运算符、表达式、语句、判断、循环、函数、指针等等这些内容 。
二、不学 C 语言能直接学 C++ 吗?
一般来说 , 有了 C 语言的基础 , 上手 C++ 也会更快 。 C++ 编程语言的第一大重要组成部分就是「面向过程编程」 , 而这正是 C 语言的领域 。 即使没有学过C语言 , 一上来就直接学习 C++ 的小伙伴 , 应该也难逃『面向过程』这一部分的内容 。 因为市面上在售的大部分讲 C++ 编程的书 , 开始的章节都在讲「面向过程编程」的内容 。 从理论上来说 , 学 C++ 前 并不一定 非得学 C 语言 , 但是有 C 语言底子再去学 C++ 往往更具优势 , 最起码「面向过程编程」这一部分内容能够轻车熟路 。 就像是有同学没有素描基础去报考艺术类专业也可行 , 但是有了素描基础学习效果会更好 。 所以在学 C++ 之前 ,C 语言的基础还是尽量要夯实 。
三、C 学得好的 , 学 C++ 是否更具优势?
【C++|C和C++的区别你知道吗?】是的 。
最起码学 C++ 时 , 里面的「面向过程」这一部分内容可以说轻车熟路了 。
四、C++ 能替代 C 语言吗?
大概会有小伙伴有这样的疑问 , 既然 C++ 这么强大 , 包含这么多模块和范式 , 而且也几乎包含了 C 语言面向过程这一部分的内容 , 那为啥还要学 C 语言呢?都直接学习 C++ 它不香嘛?不如我们来看一下这张图片▼

2020 开年 C语言重回巅峰王座  , 一举夺得「 2019 年度编程语言」
“C生万物 , 编程之本”C语言在计算机体系占据着不可替代的位置!
无论是过去 , 现在 , 甚至是未来 , 近 50 岁的 C 语言老将军依然永不为奴 。
以上就是为大家分析的C与C++的区别 。 C++ 和 C 各有各的选用考虑和应用场景 , 并没有谁更好一说 , 学哪个看自己的兴趣和自身技术发展的考量 。 如果你对C语言感兴趣 , 小编在这里为你推荐以下书籍:


关于 C 语言学习书籍 , 最权威的当然是 C 语言的发明者 Dennis M. Ritchie 所著的《The C Programming Language》 , 除此之外《C Primer Plus》也很系统全面 。 指针部分强化可以系统阅读《C和指针》 。



关于 C++ 的学习书籍 , 适合初学者的首推《C++ Primer》 , 至于再深入可以继续阅读诸如《Effective C++》、《STL源码剖析》、《深度探索C++对象模型》等书籍

零基础学习C语言
每天一个小知识点 , 与大神更近一步!
关注我 , 了解C语言更多信息~


    推荐阅读