對於C語言,很多人都知道,可能也有很多人大學甚至中學也學習過,可能只是熟悉或僅僅了解,能說自己精通的應該能在前面的基礎上能砍掉大部分人,所以有人就想知道,那該怎麼做才能精通C語言呢?
一. 先具備一定的電腦基礎,為後續提升做好準備
是科班出身的直接學習C語言,算是駕輕就熟,相對來說障礙少一些。不是電腦專業的上來基本的機制轉換都成問題,到後來學習指針等比較難懂的技術點,一些基礎環節的缺失該暴露了,舉個簡單的例子:移位運算,如果不懂的十進制轉到到二進制,高八位,低八位的規則,沒點基礎很難搞清楚。小編推薦一個學C/C 的學習裙【六二七,零一二,四六四】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有很多乾貨和技術分享!
這也就是為什麼很多非電腦專業的想學程式設計一直給推薦電腦組成原理的原因。
對於電腦專業的,就可以直接起步學習C語言,需要選擇一本比較不錯的書,目前口碑不錯的書也不錯,沒必要全部買了去學習,第一次學習弄一本書就夠了,在這推薦C程式設計語言,C primer plus,這兩本書曾經在入門的時候用過。覺得還不錯。
二. 都準備好了,如何去學,學習過程該講究什麼策略?
有了一定的基礎了,書本也準備好了,一定有人會說,用跟著影片學習也很不錯。影片學習簡單明了,而且裡面的老師講的也比較清晰,為啥還要選擇以書本為主。很多人都喜歡看武俠電視劇,看過原著的人再去看拍的電視劇總會覺得缺少點什麼,視頻是對知識的高度提煉和濃縮的過程,所以看起來非常簡單直接,看似比較容易去學。經過語言的加工提煉,讓人一聽就明白,但是這個加工提煉的過程不是學習程式設計的人自己搞的。
學習程式設計本質上就是建立自己知識體系的過程,建立過程就需要一個提升思維認知的過程,書本上的東西比較抽象,看起來更加讓自己的大腦有遐想的空間,更加容易讓自己去動腦。在這強調一點不是說看影片學習不對,可以選擇性的來看。以書本為基礎,遇到實在不懂的點,找到對應的知識點去看看影片學習一下,然後再去回歸書本。在這個過程中很多人覺得我看影片都聽得非常明白,但是離開影片讓我寫怎麼也寫不出來。原因是聽明白和實踐明白是兩碼事,多練才是硬道理。
三. 掌握常見的幾個大知識點
資料型,數組,函數,指針,結構體,預處理,文件等幾大塊。真正難點集中在函數,指針,預處理看起來不是很難,在很多大型軟體底層從效率考慮很多函數的實現直接採用宏的方式,對於初學者就不要考慮那麼多。
指標是整個C語言的核心,回呼函數,以及資料結構都是圍繞著指標。資料結構很多都是專門的一本書拿出來作為重點去學,本質上就是指針和結構體的搭配組合,形成各種資料結構,二元樹,樹,鍊錶等等。
對於指標的了解,指標就是一個變量,只不過這個變數和普通的變數有點差異存放的是位址,這個位址會指向一個記憶體區域,這個區域可以存放任何的數值,也可以繼續存放位址,二級指標就是這麼來的,指標在使用之前一定要初始化,初始化本質上就是給這個指標尋找一個真實的存在的記憶體區域。說起來挺簡單,但是在實際使用過程中,初學者往往會產生各種錯誤,這也屬於正常。開始挖坑,然後慢慢填坑,直到弄清楚是啥意思,這個期間可能會比較痛苦,挺過來再去看其實也沒那麼難。
學的過程遇到瓶頸可以找對應的影片看看,也可以留言說出你的困惑,知識點也就那就那幾個,弄一個少一個。總會結束的時候。
掌握大致的知識點之後,可以找一些小的項目練手,比如貪吃蛇,俄羅斯方塊等遊戲,代碼量相對比較小,但也能從側面提升編碼能力和對知識的認知程度。
四. 如何深層的提升
用C語言做專案困難主要包含三點,找出記憶體洩漏,提升系統效能,建置框架也合理。
由於C語言的指標使用的時候就需要初始化,基本上附帶需要申請內存,如果內存不及時釋放,不停的申請就會造成內存洩漏。查找內存洩漏需要自己去寫鉤子函數抓住有多少人去申請了內存,然後抓住釋放函數,抓取數據然後根據指針的地址做比較,看看有沒有隻是申請內存,但是沒有釋放的地址,抓出來了找到對應的程式碼直接修改掉。
系統效能解決整體上有兩種策略,重新審視程式碼邏輯,透過debug或加列印的方式,一點點排除,做這種工作比較乏味而且還需要具體整體的把握能力,有一種對代碼的直覺包含在裡面。
搭建框架這個要求更高了,設計模組的框架整體來說都是遵循高內聚,低耦合策略。但是實際在開發過程中,可能為了方便直接就來回呼叫的很多。算是軟體開發的非常高的境界了。
這部分說的內容可能對初學者來說,感覺還是比較遙遠,基本上算是程式設計老手做的事情。都會有從小白到高手的過程,不要覺得現在水準很差就覺得自己沒有希望了,都是需要一個過程。千里之行始於足下。
作為初學者可以審視下自己現在學習到哪個階段了,差距還有多遠,要走的路還有多少。知己知彼百戰不殆。
以上是怎麼精通C語言?的詳細內容。更多資訊請關注PHP中文網其他相關文章!