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++编程学习】!(14)欢迎你!
学C++也就在于学会这种思想,而不是它有多少语法、有多少库、能开发多少漂亮的界面。因为它自己并不擅长开发很友好的界面,如:它要结合其他的图形库才可能开发图形界面。因为它的定位是内功修为,而不在招式训练。
学习汇编、C语言和C++是属于修炼编程内功心法,学习JAVA,PHP,C#,QT,MFC这些是属于外在招式学习,招式漂亮,自然观众就会被你吸引,因此你找工作的时候用的是招式,而提升你编程内功要用的是内功。所以不要因为C语言C++职位没有上层语言多就不重要,也不要以为上层某语言你学的很熟悉就天下无敌了,否则你会过的很累。只有辩证的看待编程世界、看待编程语言,才能游刃有余的遨游在智能世界的海洋。
因此:学习C++,同样不是为了用C++来开发交互性很好的应用型功能,而是学习“面向对象编程思想”的渊源和发展过程,以及表现形态。然后用在其他上层语言(如:JAVA、PHP、js)的快速学习中。
语言之间没有多少共性,语言开发者之间本来就要做成独一无二的,谁愿意说自己开发的是复制别人的?也只有独特才会有市场,因此找寻它们之间的不同,这本来就是顺理成章的事,也是作者想要给你展示的。那么找不同点,就不算什么本事了,找共性点,把它们之间能串联起来,形成编程领域内的融会贯通的知识体系才是本事,而这共同点,就是编程思想。
很多人迷惑于那么多的编程语言,无从选择。其实上层语言只是在不同的领域内的编程思想的应用罢了。虽然衍生出来的各种用法、关键字各有不同,但这都只是外在语法的表现而已,要学会透过现象看本质,它们的内在本质其实都受到“面向过程、面向对象”的支配,这些才是它们的本质。所以是:形散而神聚。
要真正学懂编程,C语言和C++是必走之路,也是要经常回头来看的指导方针。我现在是做移动互联网(PHP)方向的开发,但学的越多,越感觉到底层语言的重要性,因此又回头来温故而知新,每一次的复习都对编程世界有更进一步的认识,这样很多语法的使用都变得顺其自然起来,学习就会越来越轻松,实现有一天,你能把C++的知识体系简化为一两页纸的内容,用它来指导别的语言的学习,这不就是一本编程领域内的“九阳神功”吗?
没人规定你必须学的晕头转向才有可能学好,C++的重要性也就是在阐述“面向对象编程思想”,而不是你有多熟练它的库(STL)。学习一种思想好的办法就是不要太过拘泥于它的语法形式。因为懂了面向对象编程思想,它的库里面就是一些已经做好了的算法和类,你直接用就行了。多用几次就熟练了,也就会了。因此会用库里面的东西并不能说明内功修为有多深,因为你没有开发过它们。
学习C++也不要把它想的过于复杂,动不动就用抽象的数据结构、复杂的算法来迷惑自己、吓唬别人,编程世界其实水很深、知识更新速度也快,所以难是必然的,因此把编程学习说的很难、把初学者吓的浑身发抖没有信心,这不是本事。把复杂的东西说的容易,那才叫本事!才是“传道授业者”值得思考的问题。
同样学习C++也不是要你用C++去找工作,而是为了轻松的学会用来找工作的语言,如:JAVA,C#,PHP,JS等这些。所以:不要肤浅的认为学了C++这一门语言就可以轻松找工作,而且还要高薪,随便找个软件相关的招聘,看看它的要求:
招聘职位:软件工程师
职位描述:开发机房综合监控、中央空调及停车导引系统软件。
职位要求:
1、 专科及以上学历,计算机应用、自动化及相关专业,英语良好;
2、 精通C++语言,内存管理,2年C++后台开发经验,至少1年以上CS/BS架构软件开发经验
3、 熟悉Windows开发平台,能独立使用Visual Studio开发调试软件
4、 熟悉Linux开发平台, 能独立使用gcc,make, gdb开发调试软件;
5、 熟悉数据库应用程序开发、SQL语言。
6、 了解TCP/IP底层协议、WebService soap协议,有http服务开发经验,优先考虑。
7、 了解前台开发,了解JavaScript、json、css/html、jQuery优先考
因此,只有学得编程世界的精髓,练就内功心法,才能拥有快速的学习力,才能胜任未来工作中千变万化的需求。如果不认识这一点,以后就不知道为什么你会过的那么累。