-
1 # 益文看世界
-
2 # 夕陽醉了107858431
其實問這個問題的人一般都是初學者,你先考慮一下職業規劃,然後再考慮類似問題。 如果你要訓練邏輯思維能力或者學習程式設計思想,那麼這個問題應該是 我要學習c語言還是Java ?
-
3 # O飛天O
必須學c,同時需要學彙編,這樣才能瞭解c,把c學精通了,再c++,而且,學c的時候,一定要好好通讀幾個大型開源專案,推薦ffmpeg
-
4 # Lyh2lw
C語言是C++的子集、當然應該從C語言開始!
C語言是面向過程的、C++是面向物件的;
還有看你幹什麼了,如果用來微控制器程式設計C就可以了!
-
5 # 領地傳奇
首先要明確一點,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等,有餘力就多學幾門,挑選下適合自己語言和方向。
-
6 # my黃土高坡
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語言推薦這本書
-
7 # 一個程式設計師的奮鬥史
作為一名一線研發工程師,先說說自己的看法,首先來說說答案,如果打算以後從事純C開發的工作,那麼顯然沒有必要去學C++了;相反,如果準備從事C++相關的工作,那麼C語言是必須花費時間去學習的,不懂C,去維護別人的程式碼,或者使用一些第三方開源庫遇到問題你還是很頭疼的。
再來說下二者的領域劃分吧:
目前,C++應用較多的領域主要有遊戲、伺服器、桌面應用、網路應用程式、影象處理、安全行業等。
C語言呢?主要有LTE通訊領域、作業系統、嵌入式平臺等。
下圖是透過拉勾網搜尋的C和C++的全國招聘需求,當然可能不是很準確,但是我想可以在一定程度上說明問題。
最後提到前景,我想現在的程式設計師,只懂一門語言的估計是很少的了,語言,永遠只是你解決問題的工具,最快最合適的完成任務的才是最好的。所以,給出的建議是,如果你是在校學生,建議C/C++一起學習把,畢竟在學校還是有大把大把的時間。如果你已步入社會,那麼建議直接JAVA把,相比C/C++這兩個更有市場,謝謝。
-
8 # BWanger軟體開發達人
當然是學習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做了大量的應用程式。現在還在用,就太幼稚及無知了。
-
9 # 科學謎航
你要了解一下兩種語言本身去學習語法是不難的,C++特性和知識要點比C要多很多,在做大型專案C++可以更好的重用程式碼,兩種語言本身都可以去實現很多專案功能,我的建議是都要掌握,做程式這塊,我的建議是先從廣度發展,後面具體專案用到什麼再深度研究,這樣你才能具備看到問題知道如何去解決的能力。
-
10 # 仨星貳姨
C++是面向物件的,它括展了C,基本上,C++編譯器是相容C的,但C++類似龍象搬諾神功,有十三層,且難修練,大部分人一輩子只能練到八九層,而且學完高階一些的C++,再學C或用C,很彆扭,所以很多人建議先學C,其實語言就幾個關鍵字,幾種語法,幾種資料型別,幾個運算子。面向物件最主要的優勢是程式碼複用,簡化邏輯,合作開發,犧牲的是程式碼執行效率。
回覆列表
看使用者開發的需求,如果是底層開發,就必須學習C語言。如果只是應用開發,可以直接從C++開始學習。實際上這兩個語言是平等的,只是在語法上C++儘量與C相容,但仍然有很多不同的地方。
C++不是C的超集。也許最初誕生的時候可以這麼認為,但是當1998年ISO制訂了C++的標準之後,C++和C就是沒有太大關係的兩種語言了。C++中包含了儘量與C相容的子集。
如果使用者選擇了一本好書,學C++之前完全沒有必要學C,即使是對C一竅不通也沒有問題。過去的很多C++的書籍都是假設讀者有C的基礎,在此情況下,當然有必要選擇先學C。
至於學C++要懂一定的編譯、作業系統、資料結構。那與C和C++無關,如果非學不可,那麼學PASCAL也要學,學java也要學,任何學程式設計的都要學。資料結構是程式設計的必修課,但是作業系統和編譯原理只能是選修課。