最近剛把c語言學了一遍,想試試實戰項目,然後現在我心態徹底炸了,我已經開始懷疑我自己了,我有一本c語言的書,帶了一本項目實戰,這不學完了嗎,就想把這個看看,第一個五子棋,今天弄了老半天,根本理解不了啊,只能看懂最簡單的棋盤是怎麼弄得,剩下的很少有能看懂的,尤其代碼中指針那裡,我是真的理解不了是什麼意思,還有好多東西,有段代碼我刪了,程序也完全可以正常運行,我就蒙了,但是這個書上說學完數組就可以上了,我這。。。,是我學習方法有錯誤嗎,還是我太菜了....


道阻且長,任重道遠

如何看待學不會C語言(指針)的處境??

www.zhihu.com圖標


自學就是這樣嘛。先怕個幾年到十幾年的坑。

你看我現在搞c語言項目的重構。說白了是把c語言代碼重構成c++代碼。

更確切地說,利用協程去解耦。

那麼,我需要看懂代碼是什麼意思嗎? 我根本不需要。因為就應用流程來講,所有的代碼,都是往圖形庫,io庫,網路庫裡面送數據,然後調用庫函數。說白了,有點像送快遞一樣。

那麼,我只需要拿筆畫上圖,這個數據從哪裡來,又往哪裡去。數據B要通過哪個協程渠道送出去。哪個協程渠道返回到什麼地方。看起來就是一個交通線。然後圍繞需求,造城市,再造省城,再造各種交通線。整個過程根本不在意,具體語句的含義。最後所有代碼都重構成我說的這種架構。然後代碼調通就可以了。

現在的你,肯定不知道我在說什麼,因為你是自學的嘛。自學就是慢。我是循序漸進,不為牟利,所以我放棄很多時髦的選擇,同時也規避了利益給技術的嚴重幹擾。內心得到平衡。

那麼,如果在你這個階段提點有用的建議的話,那就是用協程思想去寫代碼。然後順利過度到c++,只要與時俱進,這玩意能幹一輩子。

關於指針的理解。

有 a和b兩個倉庫。 倉庫指針p,可以指向任何一個倉庫。 然後*p就相當於 a或者b了。

好處是,傳指針,大量節省空間和時間。增加復用。

指針的本質就是一個dword(64位)這麼長的數字,裡面保存的是內存地址。再用類型轉換一下這個地址,再用同類型的指針一指向。然後就正常地使用這個指針了。


就像寫不了英語作文,不是英語不好,而是中文不好。

看不懂代碼,不是因為代碼,而是沒懂計算機如何解決問題。

現實的問題如何用計算機能理解的方式表達,這是代碼的意思。


因為**有些**編書的人沒把代碼可讀性放在心上,多見於國內計算機教材和參考書。


原本我以為寫代碼是很簡單的事情,直到我在知乎上反覆看到這類問題


實戰沒有必要直接上手項目

建議學著解一些演算法方面的題

項目感覺學習性價比很低,很多事情不是在語言本身,既然是初學,還是把基本數據結構演算法之類的喫勞好


一個項目看不懂有很多方面的原因。

1、有可能項目對於你來說太難了,所以你看不懂。就像小學生看微積分,他也看不懂。

2、可能這個項目寫的不夠好,所以你看不懂,那你可以看一些代碼結構比較好的代碼。

3、一開始不要看代碼行數很多的項目,從小項目看起是一個不錯的選擇。


打好硬體基礎,理解馮諾依曼體系結構,計算機組成原理


我做了4年c++了,我自認為看代碼完全沒問題,自己之前接觸的項目也是無人指導零文檔,但是我很快能理出代碼的運行流程,知道項目是咋回事要幹啥!接觸過不同項目,有的項目代碼難度還挺大的我都搞定了!可是這次我他麼也栽了,項目代碼看不懂,好鬱悶啊!不是因為語法,而是為什麼要這麼寫,這個函數到底要幹啥,我看的完全懵逼,代碼運行流程搞不清楚,也沒法調試,代碼量挺大的,看的真的難受!不知道各位大神遇到看不懂的代碼是怎麼解決的!!!

經過幾天的奮鬥有點眉目了,原來我看到是資料庫線程池和資料庫驅動代碼,這家公司在開源項目中加了一些自己的業務邏輯搞得項目!我說咋那麼難看呢,看來自己還是太孤陋寡聞了,水平還是有點跟不上趟!


1、閱讀他人的代碼就要閱讀其中的精華,站在巨人的肩膀上,讓自己成為巨人。

2、不要消極的去閱讀別人的代碼,而是帶著挖掘寶藏的精神去尋找別人的代碼中精華的部分,找出其中好的架構為我所用。

3、瞭解別人的代碼意圖,然後再去修改,擴充,抽取,提煉精華。這是進階的必經之路。

4、要了解別人的代碼,首先要熟悉代碼中的命名規範。

5、閱讀代碼的目的在於瞭解系統全貌而非瞭解細節。

6、心中必須有對架構的層次感,例如,如果談到對事件驅動式的架構時,應該想到,這個系統主要有三個重要角色,事件調度,事件產生,事件處理。從上而下了解,先不關心內部細節。

7、從作者的角度去理解代碼,理解架構。


推薦閱讀:
相關文章