C語言你所要知道的事(C語言基礎篇)

在開始寫這篇文章前,我來談一談我當時是怎麼學習C語言的。其實我和大部分同學一樣,是上了大學之後開始接觸C語言,有人用三天搞定了C語言,可見C語言想要入門並不是很難,其實學完之後,你也會發現C語言也就那樣。當時學習C語言主要是自學,有兩個特別好的學習平臺,一個是B站,一個是慕課,另外51CTO也可以,只不過有些課程可能要收費。這個是我當時看的一個視頻教程或許對許多初學者有用,個人感覺是我看到的最適合入門的教程了。
https://www.icourse163.org/learn/CUG-1001632003?tid=1002920002#/learn/content?type=detail&id=1004111287&cid=1005067545&replay=true

編程語言

計算機編程語言主要可以分成三類,機器語言,彙編語言和高級語言。

機器語言指的是機器可以執行的語言,我們的計算機只認識1和0,比方說一個電子開關只能控制燈的亮滅,而不能控制它的亮度,1表示燈亮,0表示燈滅,可能有人問有些開關可以控制燈的亮度啊,其實這並不違反計算機只認識0和1,只不過是在很短的時間切換0和1,比如在0.1秒時間內其中0.05秒燈亮。0.05秒燈滅,這樣就可以控制燈的亮度,總的來說,計算機只認識0和1,沒錯計算機就是這麼笨。

那我們不可能輸入0和1讓計算機去執行,這樣太麻煩了,其實早期的編程還真是這樣,在一個紙條的打孔,根據有沒有空來判斷是1還是0,後來人們覺得太麻煩了,於是有了彙編語言,彙編語言接近人類語言但編寫者需要對底層有所瞭解,那彙編是怎麼執行的,其實當一條彙編語言寫出來,機器是不認識的,前面說了機器只認識0和1,那怎麼辦呢,於是人們想了個辦法,那就是將寫好的彙編語言編譯成機器看的懂的0和1,然後去執行。

前面提到編寫彙編語言編寫需要對底層要有所瞭解,那麼有沒有語言是不需要對底層瞭解,更接近我們的日常生活的,於是就有了高級語言,我們學習的C語言就是一門高級語言,那它是怎麼執行的,在C語言中,其實它是將C語言代碼編譯成彙編語言,在通過彙編語言編譯成機器理解的0和1來執行。

那麼高級語言和底層的語言有什麼區別呢?可以這樣說,做同樣一件事,底層編寫量更大,但是效率更高,比如做一件事,C語言只需要一條代碼,而彙編語言可能要寫十條代碼,但是彙編語言可能只要0.01s,而C語言可能需要0.1s時間。

淺談C語言的歷史

1969年,通用電氣、麻省理工學院和貝爾實驗室聯合創立了一個龐大的項目 ---- Multics工程。該工程的目的是創建一個操作系統,但遇到麻煩,他們沒能完成目標,沒能交付原先承諾的快速而便捷的在線系統。

心灰意冷的貝爾實驗室專家撤離 Multics工程後,他們又去尋找其他任務。其中一位名爲肯·湯普森( Ken Thompson )的研究人員對另一個操作系統很感興趣,他們想管理層提議,但遭到否決。在等待批准時,他和他的同事丹尼斯·裏奇( Dennis Richie )自娛自樂,把"太空旅行(一種軟件)"移植到 PDP-7( 一種迷你電腦 )上,於此同時湯普森爲PDP-7編寫一個簡易的操作系統。他比Multics簡單、輕便很多。整個系統用匯編編寫,並在1970年,取名爲UNIX。

用匯編寫的UNIX顯得很笨拙,湯普森想利用高級語言的一些優點,於是他創建了B語言,B語言從來沒有真正成功過,因爲硬件系統的內存限制,他只允許放置解釋器而不是編譯器,導致效率十分的低。

1970年開發平臺轉移到PDP-11以後,無類型語言( B語言不能表現不同的數據類型,打個比方就是不能表示一個數是整數還是小數 )很快就不合時宜了,而且效率也是一個問題。丹尼斯·裏奇( 上面提到第二個人 )利用PDP-11的強大性能。創建了能同時解決多種數據類型和效率的"New B"(這個名字很快就變成了"C")語言,他採取編譯模式和解釋模式,並引入了類型系統,每個變量在使用前必須聲明。

C語言編譯器

前面談到我們編寫的C語言計算機不認識,需要把他翻譯成計算器認識的0和1也就是二進制代碼,那麼我們需要一個工具來幫助我們,那就是編譯器,編譯器可以幫我們寫的代碼編譯成機器語言。一種方法是我們可以採用記事本加命令行的方式,這種方式不太提倡,不適合新手,另一種是通過網上下載的軟件。

那麼一般軟件有哪些呢,比如說VS,我見過有很多新手去用這個軟件,結果創建個工程都創建半天,結果消磨自己的耐性和興趣,導致學到一般半途而廢。對於軟件我的觀點是先把簡單的用會,再去用複雜的,因爲VS本來就不是給學習者用的,這個軟件是給有一定基礎的或者是開發者用的。我們先要把簡單的學會。

我當時用的是Visual C++ ,這款軟件雖然老了點,但是能滿足我們的需求,很多大學也推薦這款軟件。下面我在評論區給出下載地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章