c++和c语言的区别
c++和c语言的区别:
它们的用于解决问题的思想方法不一样,之所以说C++比C更先进,是因为“设计这个概念已经被融入到C++之中”,而就语言本身而言,在C中更多的是算法的概念,那C很重要,算法是程序设计的基础,好的设计如果没有好的算法,一样不行。
全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中,而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合。
C语言
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,C语言能以简易的方式编译、处理低级存储器,C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译,最新的C语言标准是C18。
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
下面我们一步一步来分析C++与C的不同:
一、类,类对于初学者,它是一个累赘。类的封装使得初学者对程序产生厌倦,感到不适和麻烦。
二、引用,引用是C++中最好尽量不要用它,除非万不得已。引用对于初学者就更容易产生混淆,不知道哪个是引用,哪个是变量。
三、函数的重载,初学者学函数的重载好像没什么坏处,但是,这会使初学者潜意识里对C语言的变量类型的重要性产生淡化,要记住C语言是对变量类型最敏感了的,变量的类型在C语言里的重要性是不言而喻的。
四、流操作符,和上面同样的道理,使得对变量类型的重要性产生淡化,有时会产生使初学者莫名其妙的结果。
五、操作符重载,典型的高级应用,初学者可能根本用不着,这个东东会让他们觉得C++很难,门槛高,看不懂。
六、继承,以及虚函数,看起来深奥,实用价值很低。还有些东东我就不发表评论了,如:new,delete操作符等
七、误区:以问答形式:
问:C++是面向对象化的而C是面向过程化的?
答:第二对,第一问错,C++并非完全面向对象化,真正的面向对象化的语言恐怕只有Java才算得上。
问: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还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。 再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。
所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习
C语言和C++的区别和联系如下:C++和C语言本来就是两种不同的编程语言,但C++确实是对C语言的扩充和延伸,并且对C语言提供后向兼容的能力;但二者在具体语言上存在许多区别。关键字的不同:C语言有32个关键字;C++有63个关键字。后缀名不同:C源文件后缀.c,C++源文件后缀.cpp,在VS中,如果在创建源文件时什么都不给,默认是.cpp。返回值不同:C语言中,如果一个函数没有指定返回值类型,默认返回int类型;C++中,如果一个函数没有返回值则必须指定为void。参数列表不同:在C语言中,函数没有指定参数列表时,默认可以接收任意多个参数;但在C++中,因为严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。C语言和C++的学习顺序C++编程语言的第一大重要组成部分就是“面向过程编程”,而这正是C语言老大哥的领域。即使没有学过C语言,一上来就直接学习C++的小伙伴,应该也难逃“面向过程”这一部分的内容。从理论上来说,学C++前并不一定非得学C语言,但是有C语言底子再去学C++往往更具优势,最起码“面向过程编程”这一部分内容能够轻车熟路。
绛旓細涓銆佸璞″樊寮侰鏄繃绋嬪紡璇█,閫傚悎灏忚妯$▼搴,浣嗗ぇ绋嬪簭浠g爜閲忓銆侰++寮曞叆闈㈠悜瀵硅薄鐗规,绠鍖栫紪绋,鎻愰珮閲嶇敤銆 浜屻丆涓嶤++鍏崇郴C++缁ф壙C鐨勬墍鏈変紭鐐瑰苟鎵╁睍,琚涓篊鐨勫寮虹増,鍏煎叿杩囩▼鍜屽璞$壒鎬с 涓夈鎿嶄綔宸紓C#鏄函闈㈠悜瀵硅薄璇█,鏄撳楂樻晥銆備笌C++鐨勪富瑕佸尯鍒槸涓嶆敮鎸佸閲嶇户鎵,涓斾笉浣跨敤鎸囬拡鎿嶄綔銆 鎶㈤璧 璇勮 鍒嗕韩 涓炬姤...
绛旓細寰蒋c#璇█瀹氫箟涓昏鏄粠C鍜孋++缁ф壙鑰屾潵鐨,鑰屼笖璇█涓殑璁稿鍏冪礌涔熷弽鏄犱簡杩欎竴鐐.C#鍦ㄨ璁¤呬粠C++缁ф壙鐨勫彲閫夐夐」鏂归潰姣擩ava瑕佸箍娉涗竴浜(姣斿璇磗tructs),瀹冭繕澧炲姞浜嗚嚜宸辨柊鐨勭壒鐐(姣旀柟璇存簮浠g爜鐗堟湰瀹氫箟).浣嗗畠杩樺お涓嶆垚鐔,涓嶅彲鑳芥尋鍨甁ava.C#杩橀渶瑕佽繘鍖栨垚涓绉嶅紑鍙戣呰兘澶熸帴鍙楀拰閲囩敤鐨勮瑷.鑰屽井杞綋鍓嶄负瀹冪殑杩...
绛旓細鍖哄埆鏄細1銆佽瑷浣跨敤闅惧害涓嶅悓 C++闅惧害澶т簬C#澶т簬C璇█銆2銆闈㈠悜鐨勫璞′笉鍚 C 璇█鏄潰鍚戣繃绋嬬殑锛岃 C++ 鏄潰鍚戝璞$殑锛孋# 鏄竴绉嶅畬鍏ㄩ潰鍚戝璞$殑璇█銆3銆鍑芥暟褰㈠紡涓嶅悓 C 璇█鏈夋爣鍑嗙殑鍑芥暟搴擄紝瀹冧滑鏉炬暎鐨勶紝鍙槸鎶婂姛鑳界浉鍚岀殑鍑芥暟鏀惧湪涓涓ご鏂囦欢涓紱鑰 C++ 瀵逛簬澶у鏁扮殑鍑芥暟閮芥槸鏈夐泦鎴愮殑寰堢揣瀵嗭紝鐗瑰埆...
绛旓細c++涓巆璇█鐨勫尯鍒槸瀵硅薄涓嶅悓銆佸嚱鏁板簱涓嶅悓銆佺粨鏋勪笉鍚屻佽璁℃濇兂涓嶅悓銆1銆佸璞′笉鍚孋璇█鏄潰鍚戣繃绋嬬殑锛岃孋锛嬶紜鏄潰鍚戝璞$殑銆2銆佸嚱鏁板簱涓嶅悓C璇█鏈夋爣鍑嗙殑鍑芥暟搴擄紝瀹冧滑鏉炬暎鐨勶紝鍙槸鎶婂姛鑳界浉鍚岀殑鍑芥暟鏀惧湪涓涓ご鏂囦欢涓紱鑰孋++瀵逛簬澶у鏁扮殑鍑芥暟閮芥槸鏈夐泦鎴愮殑寰堢揣瀵嗭紝鐗瑰埆鏄疌璇█涓病鏈夌殑C++涓殑API鏄W...
绛旓細1銆侀潰鍚戜笉鍚 C璇█鏄潰鍚戣繃绋嬬殑锛孋锛嬶紜鏄潰鍚戝璞$殑銆傚嚱鏁板簱 C璇█鏈夋爣鍑嗙殑鍑芥暟搴擄紝瀹冧滑鏉炬暎鐨勶紝鍙槸鎶婂姛鑳界浉鍚岀殑鍑芥暟鏀惧湪涓涓ご鏂囦欢涓紱C锛嬶紜瀵逛簬澶у鏁扮殑鍑芥暟閮芥槸鏈夐泦鎴愮殑寰堢揣瀵嗭紝鐗瑰埆鏄疌璇█涓病鏈夌殑C锛嬶紜涓殑API鏄Window绯荤粺鐨勫ぇ澶氭暟API鏈夋満鐨勭粍鍚堬紝鏄竴涓泦浣撱備絾浣犱篃鍙兘鍗曠嫭璋冪敤API銆3...
绛旓細c璇█鏄繃绋嬪寲鐨勭紪绋嬭瑷锛屽鏄撳叆闂ㄣ俢++鏄潰鍚戝璞$殑缂栫▼璇█锛屽叾涓変釜鐗圭偣鏄細灏佽鎬э紝缁ф壙鍜屽鎬併傝繖鏄痗璇█鎵涓嶅叿澶囩殑銆俢+涓嶆槸缂栫▼璇█锛屽彲鑳芥槸鏌愪釜璋愰煶鍚э紝姣斿绉佸渚︽帰涓殑鈥滅瀹垛濄傚懙鍛碉紝濡傛灉浣犻棶鐨勬槸鍦╟璇█涓唬琛ㄧ殑鍚箟锛岄偅涔堬細c琛ㄧず涓涓彉閲忥紝濡俰nt c; float c;c+ 琛ㄧず鑷韩涓庡彸渚ц〃杈惧紡...
绛旓細c++鏄C璇█鐨鑱旂郴鏄疌璇█鐨勪唬鐮佽兘澶熷嚑涔庣櫨鍒嗙櫨鐨勮兘澶熷湪C++鐨勮瑷鐜涓嬭繍琛岋紝鍙槸c++鏈夎嚜宸辩殑璇硶锛屽彲浠ヨC++鐨勫簳灞鍜孋璇█涓鏍枫鍖哄埆鏄疌鏄竴涓粨鏋勫寲璇█锛屽畠鐨勯噸鐐瑰湪浜庣畻娉曞拰鏁版嵁缁撴瀯銆侰绋嬪簭鐨勮璁¢瑕佽冭檻鐨勬槸濡備綍閫氳繃涓涓繃绋嬶紝瀵硅緭鍏ヨ繘琛岃繍绠楀鐞嗗緱鍒拌緭鍑恒備竴銆佷富浣撲笉鍚 1銆丆璇█锛氭槸涓闂ㄩ潰鍚戣繃绋...
绛旓細涓銆佹ц川涓嶅悓 1銆乂isual C++锛歁icrosoft Visual C++锛堢畝绉癡isual C++銆丮SVC銆乂C++6.0鎴朧C6.0锛夋槸Microsoft鍏徃鎺ㄥ嚭鐨勪互C++璇█涓哄熀纭鐨勫紑鍙慦indows鐜绋嬪簭锛岄潰鍚戝璞$殑鍙鍖栭泦鎴愮紪绋嬬郴缁熴2銆丆++锛欳++鏄C璇█鐨缁ф壙锛岃繘琛孋璇█鐨勮繃绋嬪寲绋嬪簭璁捐銆備簩銆佷綔鐢ㄤ笉鍚 1銆乂isual C++锛氶傚悎鐢ㄦ潵缂栧啓鍚勭澶嶆潅杞欢...
绛旓細2銆丆鏄竴闂ㄨ瑷,鐢卞搴斿钩鍙扮殑缂栬瘧鍣ㄧ紪璇戞垚瀵瑰簲骞冲彴姹囩紪鐨勭▼搴,鍚勫钩鍙扮殑姹囩紪涓嶄竴鏍,褰撶劧缂栬瘧鍣ㄤ篃涓嶄竴鏍稤OS涓婄殑TC2TC3 WINDOWS涓婄殑VC8051鐨凜51閮芥湁鑷凡鐨勭紪璇戝櫒銆傚叿浣鍖哄埆鏄敱缂栬瘧鍣ㄥ喅鐨,鍙兘鍙傝冨搴旂殑缂栬瘧鎵嬪唽,鍗充娇鍚岀骞冲彴涓嶅悓鐨勭紪璇戝櫒瀵笴鐨勬墿灞曚篃鏈変笉鍚屻3銆佸崟鐗囨満c璇█缂栫▼鏄熀浜C璇█鐨鍗曠墖鏈...
绛旓細c++鍜宑璇█鐨勫尯鍒锛1銆佸叧閿瓧 钃濊壊鏍囨敞涓C璇█鍏抽敭瀛楋紝C++缁ф壙浜咰璇█鐨勬墍鏈夊叧閿瓧锛屼互涓嬬孩鑹叉爣娉ㄤ负C++涓惈鏈変絾C璇█娌℃湁鐨勫叧閿瓧锛堟牴鎹甤++98涓彁鍑篊++鍖呭惈63涓叧閿瓧锛夈2銆佹簮鏂囦欢鍖哄埆 C璇█鏂囦欢鍚庣紑涓篶锛宑++鍘熸枃浠跺悕鍚庣紑涓.cpp銆傚鏋滃湪鍒涘缓婧愭枃浠舵椂浠涔堥兘涓嶇粰锛岄粯璁ゆ槸.cpp銆3銆佽繑鍥炲间笉鍚 C璇█...