首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习C+之前一定要先学习C语言吗?先有鸡还是先有蛋呢?

初学编程的小伙伴应该都会遇到这个疑问吧?

因为最近总是有小伙伴问这个问题,所以今天在这里统一以文章的形式回答大家。都是干货,认真阅读哦~

C++ 读作“C加加”,是“C Plus Plus”的简称。

顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 8P 和 iPhone 8、Win10 和 Win7 的关系。

从语法上看,C语言是 C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译,这给很多初学的小伙伴带来了不小的困惑,学习 C++ 之前到底要不要先学习C语言呢?

对于这个问题,我保持中立。

但是初学者直接学习 C++ 确实会非常吃力,Hold 不住,尤其是对计算机内存不太理解的情况下,C++ 是学不懂的。

C++ 是一门灵活多变、特性丰富的语言,同时也意味着比较复杂,不易掌握。

不过可以明确地说:

学了C语言就相当于学了 C++ 的一半,从C语言转向 C++ 时,不需要再从头开始,接着C语言往下学就可以,所以强烈建议先学C语言再学 C++。

☆ C++和C语言的血缘关系 ☆

现在看来,C++ 和C语言虽然是两门独立的语言,但是它们却有着扯也扯不清的关系。

早期并没有“C++”这个名字,而是叫做“带类的C”。

“带类的C”是作为C语言的一个扩展和补充出现的,它增加了很多新的语法,目的是提高开发效率。

如果小伙伴有 Java Web 开发经验,那么可以将它们的关系与 Servlet 和 JSP 的关系类比。

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

随着 C++ 的流行,它的语法也越来越强大,已经能够很完善的支持面向过程编程、面向对象编程(OOP)和泛型编程,几乎成了一门独立的语言,拥有了自己的编译方式。

我们很难说 C++ 拥有独立的编译器,例如 Windows 下的微软编译器(cl.exe)、Linux 下的 GCC 编译器、Mac 下的 Clang 编译器(已经是 Xcode 默认编译器,雄心勃勃,立志超越 GCC),它们都同时支持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语言应该如何选择?小伙伴应该也有自己的判断了吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200424A0GBDB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券