学C++之前要先学C语言吗?

C++ 读作“C加加”,是“C Plus Plus”的简称,C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,也就是C语言的超集。

从语法上看

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++ 拥有了独立的编译器”。

我的建议

1.重基础

没有任何编程基础的读者,我建议先从C语言学起,不要贪多嚼不烂。有编程基础的读者,相信你自己能做出正确的判断。

学习编程是一个循序渐进的过程,不要期望一口吃个胖子。学习C语言,一来是学习它的语法,为C++打基础,同时培养编程兴趣,二来是学习内存、编译和链接,弄清编程语言的内在机理。

2.重实践

每个初学者都经历过这样的窘境:已经学习了语法,明白了编程语言都有什么,也按照教程敲了不少代码,但是遇到实际问题就挂了,没有思路,不知道从何下手。说白了就是只会学不会用。

究其原因,就是实践少,没有培养起编程思维!学习知识容易,运用知识难!

等你熟悉了C语言,能编写出上百行的代码,就对编程有些概念了,就能培养起自己独特的编程思维。这个时候再去了解C++究竟在C语言基础上增加了什么,你就站在了一定的高度。

结束语

从“学院派”的角度来说,C++支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。就面向过程编程而言,C++和C几乎是一样的,所以最好是先学C语言,学习了C语言,也就学习了C++的一半,不需要从头再来。最后,希望各位想走C++方向的小伙伴要加油哦!有兴趣的可以加群:941636044 一起和小编交流交流!

你可能感兴趣的:(学C++之前要先学C语言吗?)