前言
最近加入了一個QQ
頻道,有很多想學C
的純小白。為什麼這麼說呢?因為他們會問一些環境用啥?為啥我配置不行?看了教程配置環境我也不會,咋配置?為啥這裡程式碼這裡有錯誤?啥語言好不好?諸如此類的問題。雖然對於熟練運用的我看到這些血壓有點高,但我會針對這些現象提出幾個問題,答案自行探索,雖然貌似對於程式設計沒有啥幫助,但是這對於如果是純小白的你來說就是一道很深的坎。由於我用的是Windows
,所以主要針對的是該平臺下的問題,其他的作業系統比如Linux
請斟酌參考。注意,本篇的C語言
指C
程式語言,請與我平常所說的C語言
是C/C++
區分。
入門之問
- 你會用計算機嗎?用不熟練就別學了。
- 安裝軟體的實際流程是啥?它修改了什麼?
- 檔案的本質是啥?
- 你學習 C 的目的是啥?如果單純想找個大廠工作賺取高工資,就別搞了,去卷 Java 和前端去。
- 對於 Windows ,環境變數是什麼?
- 遇到問題,你會自己搜尋甚至花費好幾天來研究這個問題嗎?你能做到自己寫的程式碼錯了自己仔細研究而不是立刻喊大佬救命嗎?(當初自己是小白的時候對於這個認識不太深刻,當我自己有些積累的時候,突然發現,很多小白式的問題就不想回答了,所以你要珍惜熱心回答你問題的網友,不要一出問題就找,消費他們的耐心)
入坑之問
- 你認為 C 程式語言存在的目的是啥?
- 語法的作用是什麼?
- 變數的本質是什麼?指標的本質是什麼?
- 函式是什麼?函式指標的本質是什麼?
- 虛擬地址是什麼?什麼是程式?什麼是執行緒?
- 什麼是堆?什麼是棧?
- 為什麼文字會有亂碼這一說?
- 為什麼遞迴很可能會導致棧溢位?
- 常見的資料結構比如連結串列、陣列、結構體、二叉樹,它們的本質是什麼?
- 什麼是大端儲存?什麼是小端儲存?
- 什麼是二進位制檔案?
- 什麼是緩衝區?
- 你會除錯嗎?
結語
對於我認為比較重要的問題我用加粗的形式,不要覺得文章的內容很不爽。程式設計是有門檻的,不要覺得自己學程式設計就能隨便搞個月入過萬。你學 C 感覺啥也不會,學完就忘,學了不理解,就說明至少上面加粗的問題,你沒有解決,如果對於C++
的話,我提的問題會更多。不要抱怨,我也是這麼過來的。我沒有任何現實的老師來指導我計算機的學習,網際網路和興趣就是我最好的老師。