偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C++相比其他語言到底難在哪里?

開發(fā) 后端
大家都知道c++完全兼容c,c++是c語言的增強版,如果沒有學習過c語言或者先學習的其他語言,比如c#,再學習c++就會覺得好難呀,那么c++相比其他語言到底難在哪里呢?

看過編程語言排行榜的都知道,c/c++自02年以來,不管時代如何發(fā)展,其排名一直在前五以內(nèi),足見其在編程語言界的地位。編程界流行這么一句話:c幾乎什么都能做,c++幾乎什么都能做好,足見其功能的強大。

大家都知道c++完全兼容c,c++是c語言的增強版,如果沒有學習過c語言或者先學習的其他語言,比如c#,再學習c++就會覺得好難呀,那么c++相比其他語言到底難在哪里呢?

 

C++相比其他語言到底難在哪里?

一、C++歷史包袱太多

C++是上世紀80年代的發(fā)明,算是比較古老的了,在長期的發(fā)展中,存在大量的歷史問題,在解決某個問題時,面臨的選擇太多,為了兼容以前的代碼和以前的規(guī)范,不得不使整個系統(tǒng)復雜龐大。

二、C++沒有一個唯一的大東家

我們知道很多語言背后都有一個團隊在運營,比如微軟的c#、甲骨文的java、谷歌的go,再看c++,它不隸屬于任何一個團隊,它沒有唯一的編譯器開發(fā)商,微軟的msvc、linux的g++,還有clang等等,這么多廠商,誰也不占主導地位,誰也不聽誰的,最后只能成立一個c++標準協(xié)會,大家協(xié)商著來,相互妥協(xié),這種相互妥協(xié),導致c++變得異常復雜,既兼容這個又兼容那個,迄今為止沒有一個公認的嚴格的c++規(guī)范,c++是非常自由的,而自由也意味著難度大

三、c++沒有完善的自動垃圾回收機制

當我們一提到c/c++,大概首先能夠想到的就是指針,指針是c/c++的精髓,同樣也是難度的根源之一,像Java、Python等很多編程語言是沒有指針的,因為他們的虛擬機或者解釋器自帶垃圾回收機制,編程者完全不用操心內(nèi)存回收的問題,而c/c++在使用完申請的內(nèi)存空間之后,又要回收,最常見的問題就是忘了回收或者其他變量正在引用就提前回收了,而帶垃圾回收的語言,編程者根本不需要操心這些事,完全不需要知道內(nèi)存是如何分配的,該誰來回收以及如何回收,自動垃圾回收有利有弊,利是對開發(fā)者簡單,弊是運行效率相對低下,c/c++是注重運行效率而犧牲了簡單性。

四、c++語法博大精深

上面說了這么多,強調(diào)的都是背后原因,那具體說來,到底c++難在哪里呢?相比Java、C#、Python、PHP、JavaScript、Go、C、R、scala、F#,在純語法上,和c++的難度完全不在一個量級,而說C++簡單的,大概都是剛畢業(yè)沒幾年,只玩過c++而不知道其他語言的,比如復雜的const和static語義,指針運算,取地址運算、模板、多態(tài)、構(gòu)造函數(shù)、繼承等等。

五、第三方庫不多

相對來說,c++主張從輪子造起,第三方庫不是太多,很多看似簡單的功能都得自己實現(xiàn)或者拼命的找?guī)欤话銇碚f,c++使用的時間長了,就會掌握的更好,因為可以不斷積累庫函數(shù)。

沒有哪一種語言是絕對好絕對不好的,都各自都各自的優(yōu)勢和劣勢,c++是一種非常靈活的語言,具有撰寫高性能代碼的能力,幾乎覆蓋了我們能夠想到的所有的領域,包括航空航天、半導體和設備驅(qū)動等等,而c++除了性能優(yōu)勢,也非常的穩(wěn)定,20年前的代碼現(xiàn)在依然可以使用。

責任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2023-06-27 17:30:13

數(shù)字化

2016-03-17 20:17:02

人臉識別技術(shù)

2011-11-08 10:15:47

Scala

2010-01-15 14:46:20

C++語言

2021-10-08 14:43:24

WiFi 5WiFi 6遠程

2017-11-30 14:14:53

2014-01-07 13:54:40

Hadoop日志

2018-09-10 15:24:23

分詞方案算法

2023-11-03 07:47:12

機器資源大模型:

2022-04-13 08:02:29

數(shù)據(jù)中心網(wǎng)絡自動化

2020-08-06 09:08:51

開發(fā)谷歌微軟

2015-06-30 14:33:52

物聯(lián)網(wǎng)

2017-03-16 14:31:11

2009-07-10 11:33:35

2018-08-31 08:51:31

C 語言開發(fā)編程

2018-01-23 11:42:50

程序員編程代碼

2017-09-13 14:06:32

數(shù)據(jù)可視化數(shù)據(jù)圖表數(shù)據(jù)

2010-01-15 17:38:37

C++語言

2010-08-09 09:09:36

Linux與BSD的區(qū)

2011-05-05 09:37:35

J-Hi
點贊
收藏

51CTO技術(shù)棧公眾號