C和C++的区别?
C++几乎是 C 的超集,只有少量功能 C++ 不支持。
1.经典版(不完全对):
C是面向过程编程,C++是面向对象编程。
大多数人一提C++,基本都会脱口而出这句话,但是这句话其实是错的,C是面向过程编程是对的,但是第二句确是错的,C++并非完全面向对象化,真正的面向对象化的语言恐怕只有Java才算得上。
2.现实版:
C语言之父已经死了,C++之父还活着。
3.正常版:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
4.最大区别:
C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为““设计”这个概念已经被融入到C++之中 ,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
几点学习建议:
1.基本概念很重要。无论学C,还是学C++,基本概念都是第一位的,也是比较困难的,但只有把握了基本概念才能把握整体脉络,才能居高临下。
2.C是C++的子集,它的基本概念和设计方法相对比较容易理解,初学者可从它入手。
3.如果要学好C++,建议初学者最好别在如VC,BCB平台下写程序,那种自动化的代码生成,花花绿绿的界面,会让你手足无措。最好先找一片空地(unix,dos),从头做起,写几个大点的程序,数个回合,再到VC,BCB下看看,你会轻松得很。在我看来,学好C/C++是成为VC,BCB高手的必由之路。
4.不要妄想速成,必须得一个byte,一个bit的去抠,尽量搞清楚每一个问题。