如何正確通過 C Primer 學習 C ?

時間 2021-05-09 18:32:06

1樓:avoidant

我就搞不懂,有c++之父寫的能反映設計理念以及如何使用c++的TCPPPL,為啥要看C++ Primer這種編譯器實現者寫的language lawyers向的破書?

2樓:Dezeming

水平不太高,學C++的話千萬不要一上來就學C++ primer。

和很多人不一樣,我讀書的時候特別喜歡讀前言和介紹。這本書的前言明明強調讀者在閱讀這本書之前已經掌握了一門程式語言,比如C語言。

什麼叫已經掌握了一門程式語言?就是,第一,你在看到乙個概念時,能夠主動程式設計去認證和檢測。第二,你具備一定的debug技巧。

第三,你擁有一定的程式設計組織能力。第四,你寫過有一定複雜度的程式,而不只只是For迴圈列印小星星。第五,當你遇到警告或者error你知道如何分析,以及如何找資料報括如何上網問別人來解決。

否則,何止容器容易把你限制住,那些大量出現在前幾章的亂七八糟的auto引用,constptr等就夠你喝一壺的了,問題是你還不一定清楚哪些應該跳過。

所以,先學會K&R C語言,以及C primer plus,這是可以零基礎學習的。

然後找本輕量級的C++中文書,學會簡單使用標準庫,學會寫幾個類,虛繼承之類的。

然後再去學C++ primer,你會發現這真是一本良心著作。

3樓:無慮

把C++ primer讀薄的一本書《essential C++》侯捷,配合《C++ primer》就夠了。

學習C++,首先要明白什麼是物件導向的程式設計(把握住這個主線);然後記住物件導向的程式語言的設計思想。

4樓:

《C++ Primer》這本書是大部頭,國外的書籍都是這樣的風格,資訊量很大,你能想到的問題都能在裡面找到答案,但也非常容易陷入瑣碎的細節中,最終難以看到全貌,以至於中途就放棄了。對於這種書籍,一頁一頁讀應該是效率最低的方法。(我曾經就使用過這種方法。。

)我總是想,假如再給我一次機會,會以什麼樣的方式來開啟這本書。

首先掌握基本的概念。有哪些基本型別?函式、類的作用和特點?

這個階段不用糾結細節,只需要掌握概念。概念也就是對事物有乙個基本的感性上的認識。它是什麼,它能做什麼,和其它事物有什麼不同。

C++中幾個基本的概念需要重點關注,基本型別、函式、類、模板。

掌握高階的概念。許多語法,都是為了保持形式上的統一,或者解決更高階的問題。比如,函式的多型可以使得呼叫者只需要記住乙個函式名稱。

有些,可能只需要留下印象,知道有這個東西,到時候才來翻閱,有些可能需要詳細了解。C++的語法十分繁複,模板裡面有許多拗口的中文翻譯,不同名詞的組合都能產生不同的意義,如果不是必要,可以不必深究。

在實際操作時把這本書作為手冊,遇到有疑問的地方,或者不確定的地方,再仔細閱讀。讀這本書,比在網上胡亂搜尋要好得多。書中的內容都是詳細、準確無疑的,許多地方都有例子。

書後有索引,可以根據名詞找到對應的頁數。

關於容器。C++中的容器是一種資料結構。因此,首先,你需要了解資料結構的基本思想和概念。

其次,容器是用模板來實現的,你需要知道模板的寫法和用法。最後,容器是乙個類,你需要知道類的基本概念。如果不了解這些,是不會理解的。

5樓:

在學校我經常用C++,畢業找工作的時候也只用C++去面試。學習用的就是這本書。

我學習的辦法很簡單,先看書本體知識,看完後把這本書每一章所有的習題都當成乙個個程式設計任務去完成。

相信我,踏踏實實程式設計實踐,關鍵的知識就刻在你腦袋裡了。

6樓:臧大為

不要看那書學C++,除非你想放棄學程式設計。

C++ Primer應該翻譯為C++參考綱要,不是給初學者準備的,是為由一定C++基礎知識的人翻閱的。初學者看了會懵逼。知識點亂的厲害。非常不適合一步步系統的學習。

也沒有必要精通C++,C++是精通不了的,大部分公司的專案,都只會用到C++最基本的特性,什麼模板之類的高階玩意沒必要學。

學C++入門最簡單的看Deitel父子編寫的C++大學基礎教程。他們還寫了一本C++大學教程。但是那個我覺得都多了,看看C++大學基礎教程就可以了。

《C++大學基礎教程》簡單易懂,由淺入深。初學者適用。

7樓:fly.chen

我是通讀的,而且是中英文對照著看的,中文還是很多翻譯錯誤的地方。在讀的過程中,記筆記,重點是記那些不一致的地方,並且記一些例子,因為不一致的地方不好推導出來,必須記下來。還有C++這門語言內容多,概念多,看完不用,基本過段時間就忘了

8樓:皮皮關

如果是要通過C++ Primer系統的學習C++,不推薦跳著看,跳著看你會對一些知識不求甚解,然後卡在某個地方就出不來了。

(補充說明:跳著看即對又不對。看不懂的地方暫時放下沒錯,但跳多了後面又看不懂了,也會很麻煩,建議跟著下面的建議做。)

跟著當前章節的知識練習,一定要做課後習題,而且要發散開來做,比如到網上查詢一下相關的知識習題,自己去搜尋一些簡單的演算法題來練習。

讀書筆記一定要做,特別是遇到關鍵知識點或者感覺困難的地方,這樣回頭看的時候就會對這些相關知識有更深的理解。

C++11之後標準更新很多,有一些簡單的比如auto、unordered_map可以靈活使用;但一些複雜的特性比如decltype、constexpr、右值引用等等,如果能看懂當然很好,但是沒有一定實際經驗的時候可能不了解它們真正的用途,容易誤入歧途(笑)

如果不是系統的學習的話,題主可以把基礎型別、基本語法、物件導向、STL初步使用看完,就可以去做乙個相對簡單的專案,在實踐中學習。

這個時候遇到問題就發散的查詢相關知識,去學習關聯知識。但到一定程度後還是需要通讀一兩遍來把缺的知識點補齊,形成系統化知識。

9樓:車中草同學

最近接到幾個C++的程式設計任務,在學習C++。

一直在找到好的C++學習方法:高興

學習路線太陡峭:不高興。

寫出程式設計任務,高興

寫不出程式設計任務,不高興。

中來回徘徊。

總結出一種方法,最近學的挺開心的。是C++小白,第一次學物件導向的語言,所以想要抓住主線,不陷入細節中。而有些東西你用時你得知道,所以得粗略的看一遍。

看此書會得到一些關於程式設計的感性認識,這些是提高你程式設計內功的重要法則。第一遍得記錄下來。

如果贊多的話,我有空會吧第一遍看書所記錄的筆記,和任務總結的知識點發出來。

10樓:Eric Qiang

其實C++的很多特性與用法,即使你是工程經驗豐富的老手,你也未必想到,更甭提去使用。

舉個黎姿:

類成員函式可以是volatile修飾的。 C++語法告訴我們:volatile的類物件,只能呼叫volatile修飾的類成員函式。

同樣,const的類物件,只能呼叫const修飾的類成員函式。它到底有什麼用處?網上有位加拿大人寫了一篇文章(有中譯本),寫了這種volatile修飾的類成員函式用於併發程式設計:

被併發訪問的資料物件,應該寫成volatile;如果乙個執行緒進入了critical region獲得了獨佔訪問權,那麼這個volatile物件就可以通過const_cast變成乙個普通物件,然後可以訪問它的一切成員函式;而在臨界區以外的執行緒,對這個volatile物件還可以呼叫它的volatile修飾的類成員函式,因為這種volatile成員函式的語義就是程式設計者保證了它是併發安全的(例如,你可以用原子操作)。C++的上述語法特性,在編譯時就能檢查出你是否誤寫了volatile物件呼叫了普通(非volatile)的成員函式。

如果你是一位C++高手,這樣的知識點也是需要不斷學習。不可能讀完《C++ Primer》就差不多該會的都會了。

我建議的學習辦法是:

首先,找一本公認的簡明準確的tutorial,最好百頁以內,最多不要過200頁,讀完之後你就可以上手寫程式幹活了。

其次,有了一定的實踐經驗,能主動使用類、繼承、虛繼承、模板、STL的主要容器與演算法之後,可以開始讀或,建議讀原版,英文都很淺顯。理解不能的句子再翻看中文版對照。這一步可以覆蓋C++主要知識點,比你零打碎敲的積累要系統全面得多

再次,必須讀、、這幾本書。其實這一步的公認好書還有好多,但這三本書你應該首先看。

之後,C++各種公認的奇技淫巧的好書還有很多,特別是與模板元程式設計有關的。

成了C++高手之後,繼續學習不斷更新知識與技能,也是要永遠與時繼進。不然,停留在C++98或者C++03的高手,在我看來還是有很大遺憾與有點可悲。

11樓:Godbird

老實說,我覺得如果你真的一點程式設計經驗都沒有完全從零開始的話,C++ Primer的Primer一詞對你來說可能並不適用。這本書其實還是有一些門檻的,只是相對於其它比如Inside C++Object Model,Effective C++,Exceptional C++甚至The C++ Programming Language這些書來說門檻要低那麼一點。

所以,如果你是科班出身,大可以不緊不慢的在大學裡學完C++的課程再來看這本書。可以加深你對C++的認識,如果你直接就入門這本書學程式設計,其實我並不推薦。

另外這本書真的很實用,很多技巧是工作中馬上就能用到的,所以無論你做什麼行業,只要用C++開發程式,這本書我認為無論如何都是值得一看的。

12樓:

對於工程性、技術性的知識,沒有實踐的感性認識作為基礎,讀也讀不懂。那麼問題來了,沒有實踐就沒法讀懂,沒法讀懂自然也就沒法去做正確且高質量的實踐,問題似乎進入了乙個死迴圈。

學習東西最怕不知道學的東西有什麼用處,只要是這樣,多半會半途而廢。而箇問題的深層次原因就是上面說的。

要想打破這個死迴圈,你唯一能做的就是調整心態,然後讀一點就實踐一點,一點一點的往前挪。這是學習任何新知識所必需的「痛苦」經歷。在這裡我給你幾點建議,幫助你盡可能的減輕「痛苦」,讓你起碼能有乙個開始:

1.第一遍要通讀,而且可以不求甚解,但必須讀的有速度,不要在不懂的地方過多的停留,不要試圖在第一遍的時候就搞懂所有細節。假如讀到後面需要前面的知識,但是又忘記了,可回頭看,也可不回看。

很多人想用c++ primer學習c++,但是第一遍都沒讀完就放棄了。

2.接上條。讀第一遍的目的是讓你知道c++都有什麼東西,先混個臉熟,等日後見到一些比較高階的特性心裡不會發慌。

3.調整心態,不要急於求成,除非你已經擁有了豐富的程式設計經驗,否則乙個假期不可能到達熟練掌握c++的程度。要認清這一點,遇到挫折了不要懷疑自己,大家都是這麼過來的。

4.c++不是一門可以邊學邊幹的語言,裡面坑很多,要是一知半解就去用,很可能掉坑里了還不知道。

5.如果覺得c++ primer太厚,可以讀讀作者寫的另外一本:Essential C++ (豆瓣)。

6.關於書上的習題,第一遍看的時候可以不做。原因是做習題就會陷入到細節中,學任何東西過早的陷入細節都不是好事情。凡是過早陷入細節的,很少有能堅持到最後的。

如何正確學習易經?

gawin 業餘自學,選擇靠譜的老師是關鍵。歷代解易的 大師 眾多,都去看他們的解讀會將自己搞暈,所以選擇一位專業的當代哲學老師跟隨學習才是正確的學習方向。推薦傅佩榮教授。 李鵬翔 易經本質上是占卜書,是本故弄玄虛或者被故弄玄虛的書,談不上正確的學習還是錯誤的學習。它最開始就是一本占卜參考書,你學好...

學習完 C Primer 能做什麼專案練手或者看什麼好的開源專案原始碼?

Ultipa 來Ultipa實習吧 參與World s Fastest and Most Intuitive Graph Database Ultipa Graph的開發。實戰是檢驗所有學習的最佳途徑。Stay foolish Stay Hungry. XFFXFF 可以去做cmu15445的lab...

英文水平到什麼程度,學習C primer英文版比中文版好?

WangKX 對自己有多大的仇非去啃英文版本,C 新經典 C 新經典 物件模型 兩本書與2020年8月已經出版了,好好讀下來,滅大多數搞C 的跟玩一樣。 Kathy 技術類書籍建議盡量看英文版,除非能肯定翻譯的質量高,因為大多數中國產技術書和翻譯的外文技術書粗製濫造,中國產的很多拿來主義東拼西湊,翻...