一、前言
距離上一次編寫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語言指令轉換為計算機設備所能識別的指令這一過程
還有一點很重要的「我們並不需要自己實現繁瑣的過程,一般情況下只需要編寫C語言原始碼即可」
IT原創動漫、學習資料、原創教程請關注公眾號