現在大一,學的計算機專業,開設了c++課程,但是聽說c比較基礎於是就又買了本c primer plus自學,但是現在又比較糾結要不要放下c,主要看一看c++呢


語法上C++算是C的超集,所以會了C++就會C。

如果你是指C常用的的設計模式和最佳實踐的話,倒是有必要專門買書籍。

作為初學者,有C的基礎再學C++的確就是會容易一些。但如果C++的課程/教材好的話,的確沒必要先學C再學C++。

而且說真的,你C++寫多了的話就回不去C了,除了一堆庫不能用,不少語法上的特性都不能用。很多人也只是在寫C風格的C++而已。


可以,就是c的思維加上c++的STL可以干很多事(比如刷題)

然後看看模板之類的鬼東西,boost庫也可以看看


就語言特性而言,c++是c的超集,直接看c++沒啥問題。

不過既然書都買了,那就儘快看完然後跳過c++的語法部分直接看高級語言特性,類、模板啥的。

然後就看興趣了,想學操作系統、網路啥的用 Linux會用到純c的一些東西。想搞web或者安卓就去學java。少花點時間糾結這些,要學的還有很多。


學習C/C++是一個漫長的過程,糾結個p


對於這個問題,如果你一點編程基礎都沒有的話,那麼建議你還是從c開始,熟悉c的語法。然後在學c++的時候,將兩者的語法比較著來學,這樣會令你的印象更加的深刻。雖然說c比較基礎,但是對於沒有編程基礎的人來說,還是比較好入門的。還有很重要的一點,你要體會c的面向過程以及c++的面向對象的區別,這一點很關鍵,它決定了你解決問題的思想。當然在你學了c之後,再學習c++的話,你就能體會到c++ 和c語言不同之處。這對你學習是有很大的幫助的。其實c++是一個神奇的東西,也是一個比較難學的語言,而在職場中如果有人用c++來進行開發的話,那麼他一定是個大牛,畢竟敢說精通c++,不是很多。當然那是後話,而在校學習的話,把c++類的概念,類的組合,繼承,依賴,以及模板(STL)等重要知識學好就行了。以上僅是個人看法,不足之處還望指教。


沒必要,這是兩個語言,不要亂來!


均可,依據自己的情況而定,只是初期一個我認為比較重要的是「雖然能,但初期儘可能不要混用」。

C與C++的根本區別不是面向過程還是對象,它們都是歷史上不同階段為了解決不同問題的產物。

C最初設計是為了解決Unix(可以粗暴理解為和今天的Linux是一樣的)上的問題,身上充滿了歷史,早期C與Unix極高度相關,在其他領域的應用是後來的事情。

C++是期望兼容C的前提下,提出一種儘可能不偏袒平台的,特性強大的通用編程語言。

所以其實有些輕微矛盾,同一件事情在C與C++的習慣用法很可能不同。C與C++本身設計不太人性化,難度不低,心智負擔較重,哪怕只是為了課程設計,也見過有太多人初學時會儘可能找自己會的部分拼上去,混用其中的內容,反而寫的更亂,存在潛在問題等等。區分C與C++的區別也是一種心智負擔,若編程功底淺薄,我覺得一開始不要給自己太大的心智負擔比較好。

依據自己的情況,兩條路線均可。

  1. 高生產力路線,直接現代C++。C++自身完備,C++的書也完備,覆蓋從最基礎開始的部分,直接學沒有任何問題。現代C++我認為可以理解為C++11以及更新的C++,儘可能使用STL完成事情,學習面向對象,好處是出活兒快,出錯機會少,省時間,並且你的課設應該比同學寫的更好看。如果不確定以後是否做C++,那麼轉換成本較低。這裡的挑戰是國內很多學校的C++教材、資源可能很挫,可能是「古代C++」,還要學不太需要的東西造成干擾,增加心智負擔。《C++ Primer Plus》對於新手比較平緩,不知道看啥可以看這個,《C++ Primer》大家認為是神作,而依我看有點像字典,仔細閱讀可以大幅度提高水平,但其編排,閱讀真的難以形成心流,很痛苦。日後若有需要,再重新學習C與Unix編程未嘗不可。
  2. 硬核路線,從C入手,把C當作一門完整的課程來對待,接著你可能需要結合一些操作系統、組成原理等課程(一般計算機大二大三陸續開課)結合,了解一點稍稍底層的東西,會用一點Linux。接著你可以選擇開始學習Unix編程,或者學習C++。若學習C++,需要你以一種學習全新的編程語言的態度來對待它,暫時忘掉C,積極使用C++ Style的部分,之後回過來會自然體會到它們的不同。這堆東西剛下來你底氣會非常足,但耗時耗力,和學校課程安排不契合。

如果看了這些還不知道該怎麼辦,那麼對自己要求不高的話就跟著課程走就好,想比別人更好的話可以從《C++ Primer Plus》開始。如果這本書還是難,可以去網易雲課堂C++程序設計(面向對象進階)_北京郵電大學_中國大學MOOC(慕課)聽老師講,我曾受益於這個老師舊版本的C++課程,課程安排比較靠譜,新版應該也不錯。

最後,希望題主關注下「C比較基礎所以C++之前先學C」這種論調的來源,先學C沒有絕對錯誤與正確,但推論過程是錯的,之後對這個來源的其他言論,要嘗試自己判斷了。


如果你是編程語言零基礎,建議你先學C吧,有了C的基礎,再學C++,從面向過程到面向對象,可以過渡平滑點兒。


有必要,那是基礎


沒必要,直接上C++思想更純粹。


感覺可以先學學C,了解下面向過程,然後再學c++,會有一個對比,可能有助於你理解面向對象。


推薦閱讀:
相关文章