距離上一次編寫C語言的教學是5年前了(2015年),由於自己是從初一時開始學習程式設計,深知學習程式設計的痛苦。當時正在念大學的我想著分享自己自學程式設計的經驗,搭建了一個社群(社群之後自己維護太懶,維護了一年不到關閉了)第一次編寫了C語言教學,分享自己的學習經驗。社群關閉後,於2017年上傳至了CSDN留存至今。
現在回過頭檢視當時自己編寫的教學,由於當時技術的淺薄,編寫的教學還是存在很多的不足,故有了一個重新編寫C語言教學的想法。此次編寫計劃編寫一個快速入門的系列以及另一個全方面學習C語言的系列。快速入門系列以輕鬆、愉悅的方式編寫,並且剝離了入門階段極少使用的技術及概念,通過最「接地氣」的方式使剛入門的新手學習到最符合當前階段的知識,計劃閱讀時長為3小時即可完成C語言關鍵內容的掌握,並且達到期末不掛科的水平。另一系列為全方面學習C語言系列,將全方面講解C語言的知識點,但也會詳細說明各種技術、概念和很新手不清楚的「專有名詞」。
本系列教學為零基礎輕鬆入門課程,適用物件為零基礎的讀者。讀者並不用擔心本系列教學會出現不理解的「專有名詞」,所有出現的術語都將給讀者解釋明白,甚至在C語言內容正式開始前會給讀者普及一些程式設計的概念,使讀者瞭解程式設計是什麼、什麼是編譯、為什麼C語言要這樣編寫以及一些常規問題的解答。
在零基礎的讀者學習程式設計前,我個人非常推薦新手先了解一些基本的計算機、程式設計概念,只有瞭解了一些概念才會使之後的學習更加的輕鬆,減少錯誤的出現。可能大多數讀者沒有該條件,也不清楚從何查到所需要的知識,這正是本系列文章編寫的原因。該系列文章將結合我學習程式設計的經驗,各個方面的剖析問題,讓各位新手讀者少踩坑多實踐,減少時間的花費。
對於很多小白讀者來說甚至不懂程式設計是什麼。可能某些讀者對於這句話有自己的見解,認為不懂程式設計是什麼那為什麼來學習程式設計。其實對於很多學習程式設計的小白來說,程式設計是他們選擇大學的一門課程,只是覺得該學科「前景好」,又或者是長輩、朋友的推薦。對於這一部分人來說,程式設計對於他們確實是個陌生的概念。
接下來我將從「程式設計是什麼」這一問題出發,詳細的講解一些程式設計或計算機相關的知識。
3.1 程式設計是什麼
程式設計從字面意思上指編寫程式。編寫程式使計算機解決某個問題並得到一個結果。
以上解釋可能對於剛剛接觸程式設計或計算機的小白來說可能會難以理解。可能會產生例如「程式是什麼?」、「計算機怎麼得到一個結果?」、「怎麼編寫程式」等問題。那我接下來換個解釋「程式設計是指人給予計算機一個命令,並且使計算機完成這個命令」;就好比使用空調,我們給予空調開與關的命令是通過遙控器,按下遙控器開,空調接收到了指令開則會開啟。這就是程式設計,是一個使用者給予命令,機器執行命令的過程與執行。在此我們並不深入說明計算機如何按照指令執行對應操作的,只需要理解什麼是程式設計即可。
3.2 程式是什麼
在3.2中解釋了什麼是程式設計,但並沒有解釋什麼是程式。程式是指一條或多條計算機能夠識別及執行的指令。我們已經知道程式設計是給予、執行命令;當我們給予命令時,計算機需要認識該命令,若命令計算機不認識則不會執行。以上描述中的「命令」則是程式,編寫程式則是指對一條或多條計算機能夠識別的指令進行編輯、組合。
一條或多條指令組成程式,我們平常使用的軟體是由一條或多條指令組成。C語言則是我們跟計算機「交流」的語言,通過C語言使我們能夠跟計算機「交流」,從而編寫多條指令,使計算機執行。
我們雖然可以使用C語言於計算機進行「交流」,但這個「交流」是間接的,C語言實際上並不能讓計算機「讀懂」,需要一個翻譯過程,名為編譯。
3.3 編譯是什麼
在C語言中,編譯是指將C語言指令轉換為計算機裝置所能識別的指令這一過程。
我們使用C語言編寫的指令被稱為源程式,原始碼在計算機中並不能直接識別,需要轉換為計算機能夠看得懂的指令。計算機只認識0和1二進位制,通過編譯後將會生成一組機器碼;機器碼是指指揮計算機做操作的一組二進位制數,也就是0和1的組合;這個組合是以二進位制0和1表示的指令;所生成的這個指令集被稱為目標程式;目標程式還將進行連線庫與函數,庫與函數我們可以當成是一種工具,計算機在執行指令時需要用到各種工具,連線後才可以執行這個目標程式;連線後的目標程式我們成為可執行程式,也就是字面所表達的意思,可以執行的程式。
3.4 通過以上了解是不是覺得步驟很繁瑣
通過以上步驟描述程式設計,發現編寫程式需要做很多事情,但是這些事情我們壓根不懂,該如何是好?
最初我閱讀一些「零基礎入門」的書籍時,我也是特別的鬱悶,甚至放棄過幾次。太難了,壓根學不會;我最終下定決心最起碼把一本書看完,最後發現,一般在實際編寫程式中,我們所需要做的僅僅是編寫C語言的程式碼,其它過程我們沒必要自己去做。我們所使用的程式碼編輯器已經幫我們實現了這個過程。
通過以上描述,我們得知了以下幾個內容:
還有一點很重要的「我們並不需要自己實現繁瑣的過程,一般情況下只需要編寫C語言原始碼即可」。
IT原創動漫、學習資料、原創教學請關注公眾號。