學C語言好,還是學C++好呢?這兩個專業在哪些領域用得最多?

每日一發小視頻


可以從另一個角度思考這個問題,一個人編程幾年一定會接觸不止一門語言,而這些語言或多或少都需要調用本地方法,即c/c++。而java、c#或其他腳本語言的本地調用,根據編譯器的不同,大多數只支持c風格調用,當然並不是說不能調用c++的對象方法(比如java的jni),而是代價較高,即便同是c++編寫的動態鏈接庫(dll)相互間調用,也不是很方便,並且存在嚴重的跨平臺問題(只要是涉及到調用本地c++對象方法,封裝性和性能兩者不可兼得),因此本地c調用才是最優解。因此我建議不用糾結是c還是c++,因為無論是哪一個,c都是不可能繞過去的,必須要掌握。另外,既然你已經決定要學c/c++,那麼以後不可避免要涉及到編譯器的相關知識,而只有掌握c,你才可能對其有更深入的理解(而面向對象的宗旨是封裝和抽象,即讓你更少的瞭解實現細節),而只有瞭解c,你才知道調用本地c++對象方法是多麼複雜的一件事,這也從一個側面說明了這兩種語言有多大的不同。追求對c的兼容絕對是c++發展歷史上最沉重的包袱


prompthu


作為一名一線研發工程師,先說說自己的看法,首先來說說答案,如果打算以後從事純C開發的工作,那麼顯然沒有必要去學C++了;相反,如果準備從事C++相關的工作,那麼C語言是必須花費時間去學習的,不懂C,去維護別人的代碼,或者使用一些第三方開源庫遇到問題你還是很頭疼的。

再來說下二者的領域劃分吧:

目前,C++應用較多的領域主要有遊戲、服務器、桌面應用、網絡應用程序、圖像處理、安全行業等。

C語言呢?主要有LTE通信領域、操作系統、嵌入式平臺等。

下圖是通過拉勾網搜索的C和C++的全國招聘需求,當然可能不是很準確,但是我想可以在一定程度上說明問題。

最後提到前景,我想現在的程序員,只懂一門語言的估計是很少的了,語言,永遠只是你解決問題的工具,最快最合適的完成任務的才是最好的。所以,給出的建議是,如果你是在校學生,建議C/C++一起學習把,畢竟在學校還是有大把大把的時間。如果你已步入社會,那麼建議直接JAVA把,相比C/C++這兩個更有市場,謝謝。

如有不同意見,歡迎關注留言,等你評論,等你「一鳴驚人」!

一個程序員的奮鬥史


我曾經是一名資深的程序員,在初創公司有著豐富的工作經驗,歡迎關注我,和我一起分享職場,科技,互聯網創業等方面的知識。

C++語言是基於C語言發展而來,C語言的語法C++基本通用,所以不要猶豫,先把C語言學好,這是必修課,C語言學精以後,C++自然就手到擒來了。

看看他們的排名,其實C和C++是不分家的。

至於學好C語言以後,你想留在C語言領域繼續深造還是繼續往C++領域去深造,這就要看你從事的行業了。

我來談談這兩個語言分別在哪個場景使用的較多:

一、C語言

C語言主要用在底層軟件,操作系統,服務器底層工具鏈的開發較多,適用於MCU的驅動,嵌入式系統的底層軟件,服務器底層工具測試等領域。

學號C語言可以從事的行業有很多,比如:智能硬件領域,小家電領域,人工智能領域,物聯網終端,機器人領域等等。這幾年由於智能硬件、物聯網、機器人領域的興起,C語言也是水漲船高。非常有發展前景。

二、C++語言

C++是一門面向對象的語言,要比C語言更高端,定位是要比C語言更高性能的領域。C++語言比較適用於音頻處理,視頻處理,遊戲引擎,計算機桌面軟件等大型場合。可以說C++適用的領域是相當廣泛的,各行各業都能找到它的身影。可是由於近些年JAVA,PYTHON等語言的興起,C++語言的使用已經沒有那麼大的市場了,JAVA,PYTHON等語言簡單易使用,受到大家的廣泛歡迎。

所以,你要選擇什麼語言進行精修,和你從事的行業有著莫大的關係。筆者只提供部分思路供你參考,具體選擇還要你自己去發現。


祝你前程似錦,希望我的回答對你有所幫助。請記得關注我哦,並在下方留言,我們一起探討。我可以給你更多的參考意見。


社會關注聚焦


首先要明確一點,C和C++是不同的東西,很多回答都認為它們是一體的,是嚴重誤導初學者。它們遵循不同的標準體系,運用領域不同,編程思想不同,僅僅是部分語法相似而已。

一些回答說C++比C更高端,更有前途的,那更加是是胡說八道,誤人子弟了,這兩種語言應用領域不同,不存在誰更高端,誰更有前途的說法,要講高端,前途,開發效率,一些新興的語言更合適。

C語言適用於嵌入式,操作系統,硬件驅動,高性能網絡服務器(nginx,Redis等)等軟件的編寫,相對C++而言更加偏向底層,適用於變化不大,穩定性要求高的場合。C語言語法簡單,入門相對容易,學好C語言有助於對計算機體系的理解。C語言本身缺乏類似C++的STL的標準庫,每個項目,不同數據類型要單獨實現一套數據結構和算法,這方面不如C++靈活,高效。但一些人說C語言不適合開發大型軟件,開發效率不如C++,這些都是嚴重誤導新人的,C語言在積累了通用數據結構和算法或直接採用優秀的第三方庫之後,開發效率和C++差別不大。像操作系統,數據庫這種大型基礎軟件用C語言開發的不在少數,C語言怎麼就不適合大型軟件了?影響大型軟件開發主要是管理,而非語言,設計不合理的C++代碼的腐敗速度會比C語言慢麼?

C++適合遊戲,界面,數據庫的編寫,偏向應用層。C++是程序員兩級分化最嚴重的語言,也是從入門到放棄人數最多的語言。優秀的C++程序員可以寫出很漂亮的代碼,普通的很容易寫出狗屎,濫用語言特性,尤其那些認為C語言和C++差不多的人,C++標準更新得比C語言快很多,引入的新特性也很多,有C語言基礎對學C++唯一的好處就是會一些非常基礎的語法,其他高級語言特性,設計模式,標準庫,統統要從頭學起。C語言有師傅帶,三年成材,C++有師傅帶,五年未必成得了材。自學?兩種語言都必須自己有天賦和悟性才行,兩種語言都比較難。都是屬於學習難,做東西更難,精通難上加難的典型。

人生苦短,C++我是不推薦的(除非工作不得不用),C語言可以學習下,但別指望短時間內做出有用的東西,語言瞭解的語法之後,還要掌握編程環境,熟悉這種語言編程思想,大量閱讀優秀的源代碼。

建議瞭解下新興的語言,golang,rust,swift等,有餘力就多學幾門,挑選下適合自己語言和方向。


coord


c語言和c++這兩種語言雖說看著差不多,但實際上應用領域還是差別比較大的,也不能簡單的說哪個更好。

編程語言有很多種,目的就是要讓機器或者是設備“理解”我們的意圖,執行相應的動作。最底層的是機器語言,就是二進制編碼,機器只能讀懂二進制編碼。在上一層就是彙編語言,c語言等,屬於低級語言。再上一層就是c,c++,c#,java等,都屬於高級語言。低級語言是可以轉成二進制編碼的,而高級語言只能通過低級語言才能變成二進制編碼。高級語言編寫的都是應用程序,而低級語言編寫的是底層程序。

這樣對比後,我們瞭解到c語言既可以編應用程序,也可以編寫底層程序。而c++只能編寫應用程序。並且c語言編寫應用程序明顯不如c++方便,所以基本上沒有人用c語言編寫應用程序。

目前c語言主要應用於嵌入式開發,各種單片機的底層程序都是c語言編寫的,並且c語言的跨平臺非常好用,兼容性很好。學好c語言之後,主流單片機的編程都不成問題。並且verliog和c語言相似度很高,之後學習會變的很輕鬆,fpga開發會容易很多。

c++語言主要編寫應用程序,上位機軟件。和c語言的側重領域不同。

所以這兩種語言不能說哪個更好,只能說哪個更適合你。如果是做嵌入式底層開發,那就必須是c語言了。如果是做程序設計,可以選擇c++學習。如果說還沒有方向,那就先學習c語言。相對於c++,c語言更容易一些,並且目前有很多語言和c語言的相似度很高,之後學習其他語言也比較容易。

學習c語言推薦這本書


MY黃土高坡


個人推薦學習C++.

其實這兩種語言有非常多的重合點,學習了其中一門,另外一個不用學也能用起來。而且這兩門語言通常情況下都被認為是可以互相替代的。C++裡面不使用面向對象那部分就和C差不多了。那為什麼推薦C++呢?因為個人認為面向對象編程是一個非常好的編程概念,學習了它之後,再涉及其他更高級一些的語言時就會非常容易上手。而且,是的,你可能會說,你只想精通一門語言,但是你工作中絕對會用到其他的語言或多或少。

因為個人工作中往往會使用多種編程語言,對這兩門語言的細緻區別不是很清楚,故不做回答,望見諒。


UselessProgrammer


我以前是c++工程師,做的是圖像算法。現在是C工程師,做的是服務器。如果你想做那種應用,請用cpp,如果是在性能要求極高,請學c。cpp很尷尬,為啥呢?因為高不成低不就,所以只能在那種客戶端應用上搞搞。就拿算法來說,如果真的對性能要求極高,人家直接用c去實現,而不是用cpp


星空147480491


當然是學習c++了。vc++提供了編程的框架及豐富的美class,其中的MFC是微軟的精華所在,vc的資料詳細地系統地禪述了構建大型程序的基本理論。

MFC首先應用於多進程,多線程及定時器,回調函數的廣泛使用。這中間用到臨界區等數據共享判斷。

MFC提供dll鏈接庫,它使得開發大型軟件成為可能。比如office軟件開發,微軟動用了幾幹人在開發,請問,用c能做嗎?能把龐大的任務分成無數個dll進行開發,再動態地鏈接在一起嗎?

有人說vc++不能開發底層,簡直是胡說。windows無數的設備處理都是vc++開發的,你說他不行?無知到了可怕的程度。

MFC提供豐富的多

對於圖像,文件,網絡,遠程控制等處理,更是其強項。

c++的MFC是最歷害的底層的,如網絡通訊,工業控制的數據傳輸,CAN,物理地址的轉換等,用起來都非常好。

c編程效率太低了,適合於不動腦筋的低層人士。

MSDN有著幾十G的文檔資料,是比爾.蓋茨先生對人類最大的貢獻,是我們今天用到的微軟app的源泉。

c語言在2000年之前很流行,我本人當時也用c做了大量的應用程序。現在還在用,就太幼稚及無知了。


beijingwanger


C++是有C發展而來,由於C語言比較適合小規模程序運行,但是當問題比較複雜、程序的規模比較大的時候,C語言就會展現出它的侷限性,於是就有C++的產生可以處理大規模的程序。

第一個問題他們使用頻率,C更多是底層開發,核心驅動,嵌入式+單片機的開發等領域開發,而C++是由C語言發展得來,C語言能開發C++都可以,而且比C功能更多,我們常見C++開發系統軟件開發,大型遊戲開發等待。

第二個問題他們發展前景,本人覺得C++更有發展前景,當然這不是絕對得,畢竟C是基礎,C++是發展得來。


Software科技言


C語言,認真學,可以學到精通。

C++語言,恐怕沒多少人敢說自己精通。

至於領域,都行,無非就是開發效率和代價。

歷史上,沒有C++的時代,彙編語言偏底層,C語言偏應用。

現在,彙編語言偏硬件驅動層,C語言偏底層,C++偏應用層

再說到現在的應用開發,各種語言,包括腳本語言,多了去了。


分享到:


相關文章: