c++和c语言的区别
c++和c语言的区别:
1、关键字
蓝色标注为C语言关键字,C++继承了C语言的所有关键字,以下红色标注为C++中含有但C语言没有的关键字(根据c++98中提出C++包含63个关键字)。
2、源文件区别
C语言文件后缀为c,c++原文件名后缀为.cpp。
如果在创建源文件时什么都不给,默认是.cpp。
3、返回值不同
C语言中,如果一个函数没有指定返回值类型,默认为int类型,并返回一个随机数,一般为0XCCCCCCCC。
在C++中,如果函数没有返回值则必须指定为void型,否则编译不能通过。
4、参数列表
在C语言中,函数没有指定的参数列表时,默认可接收任意多个参数。
在C++中,有严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。
5、C++支持函数重载,C语言不支持
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。
例如希望交换两个变量的值,这两个变量有多种类型,可以是int、float、char、bool等,我们需要通过参数把变量的地址传入函数内部。
在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:
void swap1(int*a,int*b);//交换int变量的值。
void swap2(float*a,float*b);//交换float变量的值。
void swap3(char*a,char*b);//交换char变量的值。
void swap4(bool*a,bool*b);//交换bool变量的值。
但在C++中,这完全没有必要。C++允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。
6、指针和引用
C语言中函数传参方式有两种:传值和传址。
以传值方式,在函数调用过程中会生成一份临时变量用形参代替,最终把实参的值传递给新分配的临时形参。
它的优点是避免了函数调用的副作用,却无法改变形参的值。如果要改变实参的值,只能通过指针传递。
指针可以解决问题,但是不安全,因此在C++中引入了引用。
7、命名空间
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或者名字污染,namespace关键字的出现就是解决这种问题。而C语言中没有。
8、输入与输出
cout代表c++的输出流。
cin代表c++的输入流。
它们都是在头文件“iostream”中定义。
“cout”必须与”<<”一起使用,“<<”起到插入的作用。
在一条语句中可以多次使用“<<”输出多个数据。
绛旓細AndersHejlsberg锛夈2銆C璇█锛欴ennisMacAlistairRitchie銆備笁銆佽璁$洰鏍囦笉鍚 1銆丆#璇█锛欳#鏃ㄥ湪璁捐鎴愪负涓绉嶁滅畝鍗曘佺幇浠c侀氱敤鈥濓紝浠ュ強闈㈠悜瀵硅薄鐨勭▼搴忚璁¤瑷銆2銆丆璇█锛欳璇█鏄竴闂ㄩ潰鍚戣繃绋嬨佹娊璞″寲鐨勯氱敤绋嬪簭璁捐璇█锛屽箍娉涘簲鐢ㄤ簬搴曞眰寮鍙戙傚弬鑰冭祫鏂欐潵婧愶細鐧惧害鐧剧-c璇█ 鍙傝冭祫鏂欐潵婧愶細鐧惧害鐧剧-c ...
绛旓細C++鍜孋璇█鐨勫尯鍒锛氶潰鍚戝璞$紪绋嬨佸紓甯稿鐞嗐佸嚱鏁伴噸杞姐佽繍绠楃閲嶈浇銆1銆侀潰鍚戝璞$紪绋 C璇█涓嶆敮鎸侀潰鍚戝璞$紪绋嬶紝鑰孋++璇█鏀寔闈㈠悜瀵硅薄缂栫▼銆傞潰鍚戝璞$紪绋嬫槸涓绉嶇紪绋嬭寖鍨嬶紝瀹冨皢鏁版嵁鍜屾搷浣滃皝瑁呭湪涓璧凤紝褰㈡垚瀵硅薄銆侰++璇█閫氳繃绫汇佺户鎵垮拰澶氭佺瓑鏈哄埗瀹炵幇闈㈠悜瀵硅薄缂栫▼銆2銆佸紓甯稿鐞 C璇█涓嶆敮鎸佸紓甯稿鐞嗭紝鑰孋++...
绛旓細鍗曠墖鏈篶璇█姣旇捣鏅欳璇█澧炲姞浜嗕竴浜涘熀鏈殑鎸囦护锛屽彉閲忕殑璧嬪兼槸16杩涘埗锛屽綋鐒跺崟鐗囨満c璇█鍙壍娑夊埌鏅c璇█鐨鍩虹閮ㄥ垎銆侰鍙槸涓绉嶉珮绾ц瑷銆傚畠闄ゅ叿鏈変竴鑸珮绾ц瑷鐨勫姛鑳界壒鎬у锛屽畠鍙互寰堝ソ鐨勬搷浣滃簳灞傜殑纭欢鎺ュ彛銆傚湪C璇█鐨鍩虹涓婏紝濡傛灉浣犳妸涓浜涘崟鐗囨満鐨勭鍙f垨鐗规畩鍔熻兘瀵勫瓨鍣ㄥ姞浜庡畾涔夛紝浣夸箣鏂逛究浜庡湪 鍐欒鍙ョ殑...
绛旓細3锛岀壒鍒槸c++涓殑鍥惧舰澶勭悊锛屽畠鍜璇█鐨鍥惧舰鏈夊緢澶鐨勫尯鍒銆c璇█涓殑鍥惧舰澶勭悊鍑芥暟鍩烘湰涓婃槸涓嶈兘鐢ㄥ湪涓璫++涓殑銆俢璇█鏍囧噯涓笉鍖呮嫭鍥惧舰澶勭悊銆4锛宑鍜宑++涓兘鏈夌粨鏋勭殑姒傚康锛屼絾鏄湪c璇█涓粨鏋勫彧鏈夋垚鍛樺彉閲忥紝鑰屾病鎴愬憳鏂规硶锛岃屽湪c++涓粨鏋勪腑锛屽畠鍙互鏈夎嚜宸辩殑鎴愬憳鍙橀噺鍜屾垚鍛樺嚱鏁般備絾鏄湪c璇█涓粨鏋勭殑鎴愬憳鏄...
绛旓細c璇█鐨鐗圭偣锛1銆佷唬鐮佸叿鏈夎緝濂界殑鍙Щ妞嶆 C璇█鏄潰鍚戣繃绋嬬殑缂栫▼璇█锛岀敤鎴峰彧闇瑕佸叧娉ㄦ墍琚В鍐抽棶棰樼殑鏈韩锛岃屼笉闇瑕佽姳璐硅繃澶氱殑绮惧姏鍘讳簡瑙g浉鍏崇‖浠讹紝涓旈拡瀵逛笉鍚岀殑纭欢鐜锛屽湪鐢–璇█瀹炵幇鐩稿悓鍔熻兘鏃剁殑浠g爜鍩烘湰涓鑷达紝涓嶉渶鎴栦粎闇杩涜灏戦噺鏀瑰姩渚垮彲瀹屾垚绉绘锛岃繖灏辨剰鍛崇潃锛屽浜庝竴鍙拌绠楁満缂栧啓鐨凜绋嬪簭鍙互鍦ㄥ彟涓...
绛旓細鍥犱负C鏄疌++鐨勫瓙闆嗭紝鎵鏈夌殑C鐨勬妧鏈兘鍙互缁х画浣跨敤锛屼絾寰堝鐢ㄨ捣鏉ュ張涓嶅お鍚堥傘傜敱浜嶤++璇█鐨勮娉曟槸鍩轰簬C璇█锛屽ぇ澶氭暟瀛︿範C++璇█鐨勮鑰呭簲褰撶郴缁熷湴鎺屾彙浼犵粺鐨勮蒋浠跺伐绋嬫墍杩扮殑闈㈠悜杩囩▼鐨勫垎鏋愪笌璁捐鏂规硶鍜孋璇█绋嬪簭璁捐绛夛紝骞朵笖瀹屽叏鎺屾彙闈㈠瀵硅薄缂栫▼鐨勬濇兂銆侰+V鍜孋璇█鐨勫尯鍒绠鍗曞湴璇村憿灏辨槸澶勭悊闂鐨勬柟寮忎笉涓鏍...
绛旓細鍙湁C璇█鍜孋++璇█锛屾病鏈塁+璇█銆1銆佸嚭鐜版椂闂翠笉鍚 C++鏄C鐨瓒呴泦锛屼篃鍙互璇碈鏄疌++鐨勫瓙闆嗭紝鍥犱负C鍏堝嚭鐜般傛寜甯哥悊璇达紝C++缂栬瘧鍣ㄨ兘澶熺紪璇戜换浣旵绋嬪簭锛屼絾鏄C鍜孋++杩樻槸鏈変竴浜涘皬宸埆銆備緥濡侰++澧炲姞浜咰涓嶅叿鏈夌殑鍏抽敭瀛椼傝繖浜涘叧閿瓧鑳戒綔涓哄嚱鏁板拰鍙橀噺鐨勬爣璇嗙鍦–绋嬪簭涓娇鐢紝灏界C++鍖呭惈浜嗘墍鏈夌殑C锛屼絾鏄剧劧娌℃湁...
绛旓細c璇█鍜宑++閮藉彲浠ヨ冧簩绾с傝鑰冭瘯鎷胯瘉鐨勮瘽锛屽彲鑳紺绠鍗曚竴浜涳紝濡傛灉鏄负浜嗗鐭ヨ瘑锛孋++鏇撮傚悎涓浜涖侰++鍜孋璇█鐨勫尯鍒锛1銆丆鏄吀鍨嬬殑鍛戒护寮忕紪绋,涔熷氨鏄綔鑰呯簿纭殑璁捐鍑虹▼搴忕殑姣忎竴涓繃绋.绋嬪簭涓姝ユ鐨勬墽琛屻2銆丆涓鑸簲鐢ㄤ簬瑕佹眰楂樻晥,璧勬簮鏈夐檺,涓庣‖浠剁浉鍏冲害杈冨ぇ璐磋繎搴曞眰鐨勭幆澧.濡傛搷浣滅郴缁,椹卞姩搴忓拰宓屽叆寮忕郴缁...
绛旓細1銆佺被鍨嬩笉鍚 C璇█鏄潰鍚戣繃绋嬬殑锛岃孋++鏄潰鍚戝璞$殑銆2銆佸嚱鏁板簱涓嶅悓 C璇█鐨鏍囧噯鐨勫嚱鏁板簱寰堟澗鏁o紝鑰孋++瀵逛簬澶у鏁扮殑鍑芥暟閮芥槸闆嗘垚鐨勫緢绱у瘑銆3銆佺粨鏋勪笉鍚 C璇█涓粨鏋勫彧鏈夋垚鍛樺彉閲忥紝鑰屽湪C++涓粨鏋勪腑锛屽彲浠ユ湁鎴愬憳鍙橀噺鍜屾垚鍛樺嚱鏁般
绛旓細涓銆佹墍娑夊強鐨勭煡璇嗕笉鍚 1銆c锛廲锛嬶紜鏈B缁 瑙i鎵娑夊強鐨勭煡璇嗭細c锛廲锛嬶紜楂樿亴楂樹笓缁勫叏閮ㄧ煡璇嗭紙缁撴瀯銆佹暟缁勩佹寚閽堛佹爣鍑嗚緭鍏ヨ緭鍑恒佹枃浠舵搷浣溿侀掑綊锛夛紜鏁版嵁缁撴瀯銆佸嚱鏁版寚閽堛佷綅杩愮畻銆2銆乧锛廲锛嬶紜鏈A缁 瑙i鎵娑夊強鐨勭煡璇嗭細c锛廲锛嬶紜鏈B缁勫叏閮ㄧ煡璇嗭紜鍑芥暟妯℃澘銆佸鏉傚畯銆佹眹缂栫煡璇嗐備簩銆佹姤鍚嶇被鍒笉鍚 1...