學c語言該怎麼入門?

自己有強烈的學習興趣,但是找不到「門」在哪裡,網路上搜索的入門教程又看不懂,問了身邊的程序員 都說那些入門教程故意弄得很難(以顯示自己技術高超)


這很大程度上取決於你的目的是什麼

過計算機二級?

看譚浩強的《C語言程序設計》已經足夠了。一遍不行就看三遍!

最快速找份工作?

放棄從C入門吧,苦海無涯回頭是岸,何必和自己過意不去,請移步這裡:怎麼用最短時間高效而踏實地學習 Python?

堅持十年磨一劍,給編程打下良好的基礎

入門推薦

c primer plus 講的很透徹,一遍不行就看三遍,三遍還沒看懂?--&>郝斌c語言180個視頻自學教程 深入淺出,充滿人文關懷,前提是你不嫌啰嗦。

補充推薦

The C Programming Language(KR):內容精悍,但個人感覺對新手來說偏難,進階學習不可錯過。

香蕉地--C語言入門了離學會編程還遠嗎? :用C語言寫遊戲的視頻教程,這是一個保持編程學習熱情不錯的方法,畢竟很多人C學不好就是死在學了很久還是沒搞清楚C可以用來做什麼上。


我的親身感受,和我的專業的學弟學妹們交流了一個學期。。。

先學會怎麼用電腦。

真的,我沒逗你,好多連Ctrl+c,Ctrl+v,cmd,win+r都不知道,全是一堆堆的伸手黨。。。

學編程一定要改變伸手黨這個習慣。。自己琢磨研究去。

不管你是Windows,還是其他的什麼,學會使用你的操作系統。

然後再來談編程。

PS:別指望一上手就做什麼遊戲啊黑客啊外掛啊什麼的,要充分做好心理準備,你至少要在cmd的「黑框框」折騰個一年半載的。

以上看完沒有放棄的,歡迎你加入程序員大軍!

沒事少玩遊戲多敲代碼多看書,入門現在我建議看視頻,效率比小白看書一堆不懂高很多。之後對一些術語比如函數,指針,運算符,struct,debug有了一些了解在看書,會簡單很多。

不建議捧著一本書啃到死。


編程入門指南 v1.1 - 蕭井陌的專欄 - 知乎專欄

能學多好看你有多強烈了。。。


我看tag打上了高中,假如真是這樣,在座各位的看起來高大上的回答大多都是在扯蛋。

推薦啊哈磊的網站啊哈磊_編程從這裡起步

初級入門書可以看他的 《啊哈,C》進階可以看《啊哈,演算法》


The C Programming Language


只是對編程感興趣的話,何必專門去學C語言?

簡明 Python 教程


怎麼沒見人推薦這本。C語言程序設計:現代方法

另外The C Programming Language這本書適合有編程基礎的轉向c,純新手不太建議。


Learn C ? Build Your Own Lisp

邊干邊學,跟著這個教程寫完一個 Lisp 解析器懂了 C 也實踐了一次解析器編寫。


c primer plus,非常全的一本書,講的很完(luo)整(suo),很適合入門,再配上一些OJ上的練習(很多OJ都有題的難度分類的,找那種不帶演算法的純語言題做)。學語言主要是要實踐,要花時間編程

書的封面:

然後推薦一個OJ:北京師範大學 ACM/ICPC

Problem Category或者Codeforces的div2的A、B題也可以作為純語言的練習題(ABCDE難度依次遞增),cf的好處是可以看到測試數據和別人的代碼。


我是大一的時候、班長說考二級、又說c語言比較有用,於是選擇了c語言,報的校外的二級班。

那個老師本身就是軟體開發出身的,所以學起來感覺很不錯,尤其是指針講得直白,直接給了正確的指針概念和用法。導致人們說指針難的時候、我卻不明白我什麼難呀?後來用到複雜的指針、也就是看看資料也就懂了,這些指針其實還是老樣子。

所以說我的c語言是這個老師教會的。

當時用的書就是c語言二級考試的教材、薄薄的一百多頁、只有後來在學校才上的c語言課本的一半厚,而且還覺得課本講的太瑣碎了。

大三又自己找了《c語言入門經典》複習了一遍,也是很薄的書,基礎性的。

畢業後看了些複雜指針的資料(函數指針、數組指針…),再加上又看了《一站式編程》、了解了c語言在彙編下的表現、自己單片機上也接觸過彙編,以至於現在c語言算是用的很熟了,平常也較多的用指針,所以現在已經不糾結語言了,而是轉向結構以及軟體工程。

平時有忘記了的、很少用的以致於不完全清晰的地方、上網查一查或者直接翻一番編譯器的help、也就能解決問題了。

所以問我怎麼學,我說:先學個基礎,然後啟動兩三個項目,慢慢去磨鍊、水平就會上來了。

接下來、就需要多讀一讀《c和指針》、《c陷阱與缺陷》之類的本領域比較著名的書,完成進階的提升,所謂站在前人/高手的肩上去更進一步,避免寫了5-10年c語言,水平還是十年前的水平。


所謂XXX天入門C/C++的這類的書,直接無視。語言沒有一個月可以速成的,尤其是毫無基礎的人來說。

《C primer》對於專業人士來說,是一本聖經

對於興趣愛好的清華大學譚浩強的《C語言程序設計》足矣,雖然譚浩強的書一直被奮戰在一線的廣大程序猿所吐槽,因為經常把一些簡單的問題解釋的複雜,或者過於糾纏不必要的技巧型代碼。

但是對於入門菜鳥玩興趣來說,確實還可以


Stanford CS Ed Library 過一遍即可入門


本人高中OIer,今天不要臉的來賣弄一些我短淺的見解(*/ω\*)

直接學C++好了,不需要先學C的,我覺得難度差不多的,書看《c++ primer》//注意沒有plus,一定要看中文版的,翻譯過來的時候修了好多錯誤

好像還有本習題集,也可以看看

配合《演算法競賽入門經典(第二版)》 /*以下簡稱《入門經典》*/ 食用更佳_(:з)∠)_

下面是關於自學中的一些經驗:

第一次看的時候很慢很正常,感覺沒理解透很正常,語法我認為並沒有入門比較容易的切入點,往往要同時學很多東西,所以第一次看的時候一知半解很正常,看到自己覺得看不下去的地方了就從頭略著看一遍,效果會提升好多

關於《入門經典》這本書最好剛開始看,看完第一部分後再看《c++ primer》,會好理解很多(也可以齊頭並進的說),《c++primer》看到類那裡就可以看《入門經典》的第二部分了,然後推薦兩本書一起看。想做題去一些偏基礎的題庫(我只知道洛谷歡迎補充)

進階篇:

//覺得自己很強了的話,繼續看《演算法競賽入門經典·訓練指南》練習去PKU JudgeOnline、 Hangzhou Dianzi University Online Judge或者大視野在線測評(有些許可權題看不到就給網站捐助300軟妹幣就好了),有些比賽網站會定期舉辦一些比賽Codeforces、 BestCoder、topcoder

就說到這些吧

//當然了,這以上都是我關於演算法競賽的經驗,我認為到大學都適用吧

對了,你聽說過love live嗎?


除了多看多聽多寫,別無他法。新手可以看看這家博客石先生的專欄 - 博客頻道 - CSDN.NET 的「C程序答疑解惑」分類,對新手幫助蠻大


推薦浙大翁愷老師的公開課,簡直是男神般的存在,先上圖一張:

這套課程是絕好的入門教程。清晰透徹,趣味十足(比如,閨女買包子的梗),每個視頻不長,10分鐘左右,不顯得拖沓,老師還特意在無形中傳授一些編程思想。總之,如第一句話。

附上視頻地址:【C語言】翁愷 程序設計入門(77)

還有好多資源可以在B站可以找到哦,比如機器學習,爬蟲等等。

學習完了之後,你可能是這種狀態:

可能在想,接下來幹嘛呢?

如果願意的話,可以嘗試看看這本書C語言名題精選百則技巧篇 (豆瓣):

附上下載地址:https://pan.baidu.com/share/link?uk=2268529374shareid=440002

應該會覺得挺有意思的,這簡直就是編程路上的「腦筋急轉彎」!

但不要忘記,才開始呢,這書就是想讓你開開眼界!

如果覺得忍不了上書的話,你也可以看看數據結構與演算法分析 (豆瓣)

數據結構與演算法經典書籍,值得一看。如果覺得看書有點無聊的話,也可以看看浙大陳越老師的公開課:數據結構 - 網易雲課堂

B站地址:浙江大學數據結構慕課_演講?公開課_科技_bilibili_嗶哩嗶哩

這個階段最最重要的就是事必躬親,多練習!

有什麼不清楚的C語言知識點,記得有空查資料即可。

作為一名新人,自然會有很多時候寫不出代碼,那怎麼辦呢?

那你可以去瞅瞅這個網站:Data Structures - GeeksforGeeks

有各種實現代碼,供你學習,有各種習題,供你練習!

如果還是覺得有點抽象的話,也可以去Data Structure Visualization或者visualising data structures and algorithms through animation看看,

讓你充分感受「碼形結合」。

最後,如果你感興趣的話,也可以試試:【Win32教程】Windows程序設計(小甲魚)_野生技術協會_科技_bilibili_嗶哩嗶哩

但,這還不是最重要的,最重要的是……


千萬不要選譚浩強的書!我們學校教C語言就是這本,我C語言是自學之後才上了這門課的,覺得這本書一點都不好,為什麼?聽我解釋

第一,排版不友好!不論是內容還是程序,排版都不好!

第二,小錯誤有點多。這完全不利於新手啊,誰看的出來。

第三,廢話太多。看了都煩

我個人比較推薦下面這本

這本是浙大出的,在中國大學mooc網站上浙大開的C語言入門課(推薦推薦,現在剛好有開課),就是用的這本教材。

排版友好,不啰嗦,小錯誤較少。

當然很多人推薦C primer plus。我沒看過,沒有發言權,不過比較厚,頂我推薦的兩倍厚,但是可能比較詳細。

另外,你肯定想知道用什麼編譯器好,我強烈推薦dev-c++。

首先,這個軟體開源,即免費。

第二,系統適配性好,不會說還要找win10版這樣。

第三,軟體體積小,幾十兆,而且操作方便。

新手使用這個編譯器就好了。

入門先多打打代碼,如果覺得C語言只能夠做做簡單的數學題,覺得無聊。那就網上查一下C語言遊戲,可以嘗試著使用C語言寫一兩個遊戲。

當然使用Visual Studio2017也是一個很不錯的選擇,查錯能力很強。但是體積大,使用哪個自己衡量咯。

首答,求贊


我也是高一。我java已經基本入門了。

編程要自學的話,網上到處都是教程,你也可以去書店買書來看。針對零基礎的多得是。我自己一邊跟著網路教程學,一邊看書。

學編程總之沒你想的那麼難,要自學只要認真完全沒問題。


C語言入門 ( ps:不說廢話才是我風格)


首先對編程有興趣的話,沒必要學習C的,你可以玩玩java,php之類的語言,這類語言表現起來更直觀,更容易上手。

如果真的是對C語言感興趣的話,選一本大家都普遍認可的教材,然後去學習。

1注意變數類型。

2注意結構體的使用。

3注意指針。

4注意堆和棧。

初學者注意以上四點,尤其是指針(這個最讓初學者頭疼)。其次是注意學習方法,編程不是知識,而是技能,所以不論什麼情況下,有問題就去想辦法通過寫代碼驗證,加入列印語句調試,而不是查資料問同學或者是來知乎問。


說實話 大部分都是看著老譚的書入門的,然後再回來噴老譚寫的爛到不行


推薦閱讀:

如何查看大型工程的源代碼?
既然編譯器是一個軟體,那它是如何編譯自己的?
覺得自己程序寫得很差不敢寫了怎麼辦?
未來想從事Linux 後台開發,需要學習linux內核嗎?像讀內核源碼。還是學好linux網路編程,C,演算法。學習內核的意義有哪些呢?
c語言未來的前景(比如就業)是怎麼樣的?

TAG:編程 | C編程語言 | 編程入門 | 計算機科學與技術專業學生 |