C語言從零開始(一)

茶花盛開發表於2017-04-17

寫在前面

毫無疑問,大部分資深程式設計師的程式設計生涯都是從C語言開始的。依稀還記得大一時候自學C語言時的情景,當時剛上大一,博主為了追求心儀的妹子就在完全不懂得C語言是什麼的情況下報名參加下學期的計算機二級(C語言)考試。這一行為果斷引來了女神關注,效果頗佳。然而在仔細瞭解了C語言之後,才發現比想象中的困難了一些。再加上大二的學長們各種渲染C語言有多難學,於是心中開始打鼓。

大一的寒假,我從圖書館借來了三本C語言入門的書,開始自學。其中自然有大名鼎鼎的譚浩強老人家的書。記得當時安裝Turb C就花了好幾天的時間,幾近崩潰邊緣。後來終於用一個寒假的時間把基礎知識都學會了,又做了幾套計算機二級的卷子,連蒙帶猜的通過了第二學期的考試。從此就算是和程式設計結了緣。

當年的妹子如今已經杳無音信,而C語言的程式碼我一寫就寫了十年。

這十年裡,IDE從最簡單的Turb C到VC 6.0再到VS2005、2008、2010、2013…開發方向從嵌入式到Windows開發再到Linux伺服器開發,當年學習C語言那份熱情依然還在。後來又在公司擔任了新員工試用期專案培訓的工作,每年都要把變數的指標和指標變數這樣的東西反覆講。看著他們一個個獨立完成了自己的試用期專案,博主成就感爆棚。

最近幾年,一直堅持利用業餘時間幫助網友解決C語言學習過程中的各種疑難問題。每天至少花費2小時時間回覆郵件。隨著來信越來越多,越發感到力不從心。況且大部分朋友的問題都是類似的,重複回答實在無趣,希望更多的朋友與我交流。

下面進入正題

1. 教材選擇

不想給大家一長串書名,那樣也許就直接抹殺了你學習C語言的興趣,這裡重點推薦三本。

《C程式設計》譚浩強

1240
C程式設計

很多大牛都不推薦譚浩強的《C語言程式設計》,但我不這麼認為。這本書雖然講的不那麼到位但作為初學者從它入門還是挺合適的。最重要的是,網上大部分初級網友都是以它為基礎進行交流的,有了它更容易融進各種論壇的討論。

《C程式設計語言》 Brian W.Kernighan | Dennis M.Ritchie

1240
C程式設計語言

這本書是C語言之父Dennis參與編寫的,雖然不厚,但有些思想講得比較到位。建議初學者學習。

如果你想學習C/C++可以來這個群,首先是三三零,中間是八五九,最後是七六六,裡面有大量的學習資料可以下載。

《C Primer Plus》

1240
C Primer Plus

這本書是非常經典的教材,每個知識點都介紹的非常到位。可以說這是入門級的選手的終結教材。如果想學好C語言並在後面有更大的發展,這本書必須要看。它能幫你打下堅固的程式設計基礎。

學習好這本書之後,學校裡的各種考試和小競賽就不在話下了。接下來,你該開始自己的進階之路了。

2. IDE選擇

如今,Turb C肯定是已經永遠地退出歷史舞臺了,但初學者還是要選擇一款合適的IDE才能方便的上手。

GCC + vim

很多學校的實驗室都用的Linux系統,建議大家從vim開始編寫最初的程式碼。

編寫好後執行下面程式碼:

$ gcc -c main.c
$ gcc -o main main.o
$ ./main
1240

Code::Blocks

這是一個輕量級的IDE,對於初學者而言,這是不二選擇。

1240
Code::Blocks

可以從這裡下載你需要的版本

VS 2013

無疑這是C語言開發最牛X的工具,然而這裡不建議初學者使用。由於Microsoft自己制定了很多自己關於開發的規則,初學者會發現課本上的程式碼原封不動的敲在上面卻報出莫名其妙的錯誤。

1240
VS2013

不過,當你擁有一定C語言基礎的時候,VS的學習一定是必不可少的。

3. 實踐

程式設計是一門非常注重實踐的學科,如果你不去親自敲程式碼的話,那你永遠也學不會。而博主也更願意在郵件中針對具體的程式設計問題和大家討論。

這裡推薦兩個適合初學者程式設計練習的線上系統。

北京大學 POJ | 杭州電子科技大學 ACM

已經入門的朋友可以前去練習,有什麼問題我們一起討論。

4. C語言知識結構

1240
C語言知識結構


相關文章