学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加加”,是“C Plus Plus”的简称。顾名思义,C++是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 6S 和 iPhone 6、Win10 和 Win7 的关系。从语法上看,C语言是C++的一部分,C语言代码几乎不用修改就能够以C++的方式编译,这给很多初学者带来了不小的困惑,学习C++之前到底要不要先学习C语言呢?关于怎么快速学C/C++游戏编程,有什么方法,这个问题,想必大家都已经心中有数了,但是初学者直接学习C++会非常吃力,Hold 不住,尤其是对计算机内存不太理解的情况下,C++ 是学不懂的。C++ 是一门灵活多变、特性丰富的语言,同时也意味着比较复杂,不易掌握。不过可以明确地说:学了C语言就相当于学了C++的一半,从C语言转向C++时,不需要再从头开始,接着C语言往下学就可以,所以我强烈建议先学C语言再学 C++。

(小编推荐一个学C/C++的学习群892643663,入群即送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兼容,但仍然有很多不同的地方。
1、 C++不是C的超集。也许最初诞生的时候可以这么认为,但是当1998年ISO制订了C++的标准之后,C++和C就是没有太大关系的两种语言了。C++中包含了尽量与C兼容的子集。
2、 如果你选择了一本好书,学C++之前完全没有必要学C,即使是对C一窍不通也没有问题。过去的很多C++的书籍都是假设读者有C的基础,在此情况下,当然有必要选择先学C。
3、 至于学C++要懂一定的编译、操作系统、数据结构。那与C和C++无关,如果非学不可,那么学PASCAL也要学,学java也要学,任何学编程的都要学。数据结构是编程的必修课,但是操作系统和编译原理只能是选修课。
4、没有任何编程基础的读者,我建议先从C语言学起,不要贪多嚼不烂。有编程基础的读者,相信你自己能做出正确的判断。学习编程是一个循序渐进的过程,不要期望一口吃个胖子。学习C语言,一来是学习它的语法,为C++打基础,同时培养编程兴趣,二来是学习内存、编译和链接,弄清编程语言的内在机理。每个初学者都经历过这样的窘境:已经学习了语法,明白了编程语言都有什么,也按照教程敲了不少代码,但是遇到实际问题就挂了,没有思路,不知道从何下手。说白了就是只会学不会用。关于怎么快速学C/C++游戏编程,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编的C/C++游戏编程学习群:892643663,邀请码(CSDN)不管你是小白还是大牛,小编我都欢迎,不定期分享干货,欢迎初学和进阶中的小伙伴究其原因,就是实践少,没有培养起编程思维!学习知识容易,运用知识难!等你熟悉了C语言,能编写出上百行的代码,就对编程有些概念了。这个时候再去了解C++究竟在C语言基础上增加了什么,你就站在了一定的高度。从“学院派”的角度来说,C++支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。就面向过程编程而言,C++和C几乎是一样的,所以学习了C语言,也就学习了C++的一半,不需要从头再来。

四、这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

(小编推荐一个学C/C++的学习群892643663,入群即送C/C++全套学习资料,满满的干货!)

展开阅读全文

没有更多推荐了,返回首页