感覺 C 很簡單,但為何這麼多勸退的?

時間 2021-05-05 14:40:53

1樓:Seayoki

C++難,是因為它包羅永珍。

從CPU層面,它能接觸多執行緒、協程。

從語法層面,它還有template黑魔法。

而C++ std標準庫的細節之多,導致了想寫出完美的C++程式幾乎是不可能的。

另外C++又是乙個和抽象數學理論緊密結合的語言。

std庫里有cmath、random、complex這些數學庫。

當涉及到世界上最難的學科~>抽象數學時。

不知道題主還是否會說C++簡單。

我們說C++難,一方面是計算機底層特別難,另一方面是語法層面的,最後一方面就是數學層面的。

2樓:魔靈kiki

這樣說吧,你蓋房子需要木頭吧,需要石頭吧,如果說讓你用C加加去蓋個房子呢。

那麼你要自己先拿石頭燒磚,你要自己去砍木頭,你要自己挑水,你要自己設計。

總之就是一切可以從無到有,但所有東西都不是現成的,需要你自己去做,當然有一些大佬做好的一些很好的庫,但是現有的庫不能滿足你的需求時,你還是要自己去寫。

大概就是這麼個意思。

3樓:熊大的表哥

我只學過C和C++,不過我身邊的程式設計師都告訴我,C++比較適合科班學,是最難的語言,框架很少,或者說就根本沒有成熟的伺服器框架

4樓:求學者

我覺得c++最難的其實是歷史包袱太重。

相似的問題可以有很多完全不同的解決方法,而且往往不怎麼相容,另外這些方法也並不完備,事實上可能最後還是要用會原始的工具。

比如指標。

引用是指標的乙個替代,引用可以用來傳參和多型,但是引用不能儲存為陣列,或者儲存空引用。

智慧型指標是另乙個替代,但是智慧型指標只能管理堆上的資源,對棧上/靜態的已有資源無能為力。

還有「過載」的問題,c++有很多方式實現過載,包括

5樓:水軍代號9527

沒毛病,沒有新手會覺得C/C++難,畢竟大一就開C語言課,大二就學C++,大三就有編譯器的課程設計,能有多難。

說難的都是寫了好多好多年的程式設計師,新手程式設計師沒見過說C/C++難的。

6樓:李克駿逸

哈哈哈哈,笑死我了,看了七八個小時教程就說cpp簡單,你先把c++ primer這本書給吃下了,有五年以上實際的cpp開發經驗,再來說話吧。

真的是無知者無謂。

7樓:netcan

任何語言都是用來表達思想的手段而已,對於C++語言而言,其無非是提供的手段更多了而已,這使得你表達一件事情,能夠有很好的特性來精確表達這件事情。語言簡單,難於思想與實踐的積累。

8樓:ixsipsp

C++有大量的細節,再加上C++11新特性,使得C++難以在短時間內精通。比如C++什麼時候會呼叫拷貝/移動建構函式?如果只是簡單回答很容易,如果要答全其實會涉及到很多細節。

裡面就有大量的細節,想要深入細節要很多時間的。

9樓:乘風龍王

來點簡單題,看看題主對C++的掌握程度

#include

intmain

()問:程式執行結果?

#include

intmain

()問:程式執行結果?

#include

inta=1

;intf(

intb

)int

add(

intx

,inty)

intmain

()問:程式執行結果?

#include

int&f(

intb

)int

main

()問:程式執行結果?

#include

intmain

()問:程式執行結果?

在32位系統

#include

intmain

()問:程式執行結果?

10樓:

給大家貢獻乙個活生生的例子吧,一位 「所謂的」 覺得 C++ 不難的 「大佬」。寫出來的通篇都是滿滿的槽點。

1. 這位「大佬」覺得 C++ 語法不難,卻很難理解預處理。行吧,我就當你水平已經精通了 template。

但 include —— 乙個比 copy & paste 略微高一丟丟的東西,理解不了,笑。

2. include 「不屬於語法部分,屬於執行的部分」,笑。

3. -I 指定包含目錄,很難嘛?還要自己設計目錄?

要知道 head-only 的庫省了多少心智負擔。你以為 Python 有 pip 那些工具就萬事大吉了嘛?你見過 pip 裝依賴的時候,朝外面蹦 C++ 的編譯錯誤資訊的嘛?

嗯?C++ 的編譯器,朝外面扔的編譯錯誤的時候,至少終端文字顏色還是說的過去的。pip 呢?

嗯?報錯是深紅的,對眼睛都是負擔。

為什麼有些人覺得 C++ 簡單?就滿足於學校裡講的 C with class + 單檔案結構的水平能不簡單麼。

11樓:「已登出」

乙個程式公升級了編譯器出現了bug

string a;

a.swap(b)

有的地方取了b的指標

出bug的原因是新編譯器做了cow

12樓:伴讀小書童

用C++做練習很容易,做工程很難,語言說到底只是工具,但是程式設計的設計和思想用C++實現很難!然後可擴充套件,易於維護更難!建議用過開源專案學習語言,比如protobuf

13樓:乙個簡單的技術控

C++是面對計算機程式設計,說白了是操縱機器的。其他的是面向客戶和業務的,是操作人的。各司其職,互不打擾。

就像乙個廚師鬧著要親自種菜,老闆當然不同意。C++是解決怎麼在地里種出合格的菜和產量,其他語言是研究怎麼做出好吃的菜,讓客戶滿意。菜不好當然會影響最後的口感,但是廚子沒必要親自種菜。

14樓:

個人感覺是和其他語言比起來C++在設計模式上太自由了,具體的語法反而是次要的。就好比實現乙個具體的功能,如果用C#寫,即便細節會有差池,但是模式幾乎是固定的。而在寫C++的時候經常要先考慮整體架構,再去執行。

且這個過程中經常產生選擇困難。剛開新專案的時候,經常要先整個推倒重來個一兩次才能穩定下來。

15樓:一川

題主對C++的專案存在誤解,可能以為是用C++寫個對話方塊之類的就算專案,如果是這樣,那確實不難。

這種自我感覺良好的情況,很容易出現在一開始沒使用C++來做專案的人身上,本身C/C++這種一開始就設計成偏底層的程式語言,它的入門門檻是設計得很低的,這也導致了上限極高的情況。

16樓:

語言是要看應用場景的,如果你是相關專業出身,CPP不過你是畢不了業的;如果你跨行,不在特定方向,CPP也不是必要的路徑;另外如果你沒有相關的背景,光了解這個語言的入門知識,你用這個語言作為工作語言的機會也不多,那意味著你沒有機會去深入了解這個語言,勸退也是情理之中。

17樓:龍潭巨擘

C++難的不是學會它的語法,而是學會如何寫才能不掉到各種坑裡面。語法看起來沒什麼,實際寫起來各種各樣令人始料不及的坑,關於c++如何避坑這件事六七百頁的書都說不完,都快趕上標準文件的厚度了。常在水邊走,誰敢說不濕鞋?

18樓:stone

我當初學C++指標的時候就覺得自己都懂了,只要好好的管理指標,自己new出來的空間記得釋放掉就好了,沒有什麼難度。

多年之後在專案中,臥槽我什麼時候new的這串陣列?!

所以說學習路上不光需要砥礪前行,還要學會謙卑和敬畏。

不裝逼真的不會死。

19樓:dwing

眾所周知, C++是一門老少咸宜的語言, 不管學到什麼層次, 都會覺得自己懂C++, 也都能寫出像樣能用的程式.

然而, 不同層次的人一旦合作開發, 一定會打起來.

20樓:小莊讀書

C++的難在於C++想要囊括的東西太多太多了,搞得這門語言越來越臃腫:

面向過程程式設計、物件導向程式設計、模板程式設計、函式程式設計……管理指標難度大是嗎?搞乙個智慧型指標吧,又搞什麼unique_ptr、shared_ptr的,本來想學習其它語言的GC機制給程式設計師減負的,結果反倒是加碼了……

又要學習python類的無型別語言,搞了乙個auto出來,結果背後的型別推倒機制太過複雜,一旦編譯出錯各種出錯資訊看得人眼花繚亂、雲裡霧裡……

上面這些東西不是看教程能體會得到的,教程一般都只是講基本的、正常的內容,而C++裡面的各種「坑」,只有用它真正做過專案的才懂~~

21樓:隻手遮天

你學了語言只能說會講話,但是能寫出優美的文章麼?需要足夠的內功支援

程式設計我個人認為也是如此,我敢保證很多學了c++語法的人現在你問他什麼是特化,偏特化什麼是萃取劑,如果通過類物件得到虛表再通過虛表間接訪問多型的虛函式,還有初值列和構造賦值的時機和區別什麼是臨時物件等等,我相信很多人答不出來

在深入問一些關於stl的更是一群人答不上來,比如什麼叫做介面卡,為什麼說stack和queue是介面卡,deque如何讓給你假象是記憶體連續的呢? 你能否自己寫乙個分配器麼?那麼你可能這幾個概念都分不清楚,new operator new placement new...

那你怎麼能寫出乙個好的分配器呢?你是否看過stl的原始碼呢?

在深入點我可以問你malloc的原理以及他的cookie和header,為了提高malloc效率你能否寫乙個去處cookie和提高效率的記憶體池呢,你是否閱讀gnuc的7種allocator呢?你看過crt的原始碼麼,你知道為什麼main有兩個引數為什麼你能直接用printf和fopen呢,你對crt認識又有多少呢?

由於c++也算底層語言所以和作業系統很多關聯,你知道什麼叫中斷了,你知道什麼是ssdt或者什麼是shadow ssdt或者什麼是hook麼,你知道什麼叫使用者態核心態以及ring0-ring3麼

上面的都還是比較基礎的問題,可以問的還是非常多,我曾經狂妄的認為我很懂了,實際上我就是乙個菜雞,越學越覺得自己菜,外行人看是這樣,希望你成為內行人看法會有改變。

22樓:溫謙恭檢讓

零基礎入門選了c++才容易放棄。

學會程式設計再換一門語言和不會程式設計學第一門語言的難度是完全不同的。

總的來說c++是極度的新手不友好語言之一。

23樓:奇創lab

只看ROI(投入產出比)而已

而ROI的關鍵,是看總體市場收益和總體競爭規模

總市場收益越大,競爭者越少,ROI就越高,一般就勸進;總市場收益越小,競爭者越多,ROI就越低,一般就勸退

而總市場收益和競爭者,都是受某行業的趨勢影響

行業起步並突破一些關鍵節點,開始快進入高速增長時期,就是普通人進入的最佳時期。普通人不是開拓者,吃不了行業的最大紅利,也不揹負前期的巨大風險。但只要有對行業的關注和一定的勇氣,就有機會在剛開始高速增長時進入,分享競爭者較少時期的行業紅利

而隨著行業繼續公升溫,更多人被勸進,市場規模增速趕不上競爭者增速,ROI就開始下降

就像這兩年,會看到很多勸退AI的說法,因為前幾年湧入的競爭者已經很多,而AI上公升的速度不會一直處於剛火爆時的飆公升態

就像AI剛火起來時,作為乙個工具,懂python都可能在一些小公司拿到AI工程師的職位,這也是當時很多勸進python的原因

但是,勸退和勸進,也都是針對普通從業者而言,無法考慮每個個體差異化的能力、興趣或雄心;也難以衡量對每個人而言的沉沒成本和進入新領域的風險

數學卷子很簡單但考差了是什麼感覺?

六中吳彥祖 本人數學挺不錯,以前也拿過不少次高分。這次期末考數學卷巨簡單,考試考的很差。其實剛考完大家都感覺考的不錯。考完問成績時其實第一感覺就是怎麼可能這麼低,是不是老師改錯我捲,這不可能。自己開始回放當時情景,像放電影一樣閃過考試時候的做題動作,怎麼也不敢相信考的差。然後慢慢接受事實後就會開始懷...

為何巴西的日裔這麼多?

Violabicid 簡單來說二戰前巴西勞動力短缺來亞洲招募勞工,日本勞動力過剩加之對地球的另一端有著莫名的嚮往吧。有乙個有趣的現象,我很多巴西的朋友 非日裔 都提到巴西的日裔大多都是幾代移民,大部分日語都不太會講,行為舉止完全是巴西人,但他們卻鮮少和非日裔巴西人結婚 不知道有沒有人解答一下這個疑問...

為何買彩票的人這麼多?

這個問題可以用決策模型來解釋的。先來說說什麼是決策模型。比如說我們來玩丟硬幣遊戲,我賭1元頭,就有50 的機會贏。每次贏得1元,每輸一次輸一元。就可以這麼算 0.5 RMB1 0.5 RMB1 RMB 0 平均來說,每投入1元,贏得錢為零,沒輸也沒贏。那彩票的情況又是怎麼樣的呢?如果買彩票的錢 2元...