C語言是什么?聽起來很神奇的樣子。其實,在很多城市的高中甚至初中,學校就已經開設了C語言課程,在進入大學之前,這些學生已經有了很好的編程基礎。但是中國的教育很不均衡,在很多地區,同學們很少接觸編程類的知識,學校也沒有相關的課程,在進入大學之前甚至都沒有聽說過C語言,對編程領域一片茫然,這就導致了很多理工科同學進入大學對C語言一無所知,很難跟得上老師的進度,所以我們來介紹一下C語言。 01 什么是編程語言 01 機器語言 機器語言是用二進制代碼表示的計算機能直接識別和執行的一-種機器指令的集合。無論什么語言, 最終都要轉化為機 器語言。因為計算機是以二進制進行數據處理的,所以計算機能夠直接理解二進制代碼。因此,它具有速度快,資源占用少的特點。 但是,機器語言寫的程序全是0和1的代碼,人類很難看懂,還容易出錯。所以,除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。 02 匯編語言 機器語言這種反人類的語言讓人們崩潰,科學家開始琢磨怎么讓計算機理解人類的語言。基本思路是做一個翻譯器,將人類語言翻譯為機器語言。這種翻譯器就是“編譯器”。 03 高級語言 隨著計算機的發展,更接近人類語言的語言出現了,它就是高級語言。它基本脫離了機器的硬件系統,用人們更易理解的方式編寫程序。編寫的程序稱之為源程序。C語言就是高級語言的一種,除了C語言,高級語言還有JAVA,C++,PHP等等。 02 C語言的誕生 C語言的誕生要從一個愛玩游戲的人開始說起。 20世紀60年代,美國AT&T公司貝爾實驗室(AT&T Bell Laboratory)的研究員Ken Thompson閑來無事,手癢難耐,想玩一個他自己編的,模擬在太陽系航行的電子游戲——Space Travel。他找到了一個空閑的機器,但這臺機器沒有操作系統,為了能玩游戲,他便動手自己開發了一個操作系統,這個系統就是大名鼎鼎的UNIX操作系統。 但是操作系統用什么語言寫呢?當時有一種就BCPL的語言,他在這種語言基礎上設計出了B語言(B取自BCPL的首字母),用B語言寫了第一個UNIX操作系統。 1971年,同樣酷愛Space Travel的Dennis M.Ritchie為了能早點兒玩上游戲,加入了Thompson的開發項目,合作開發UNIX。他的主要工作是改造B語言,使其更成熟。 1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。 C語言的主體完成后,他們開始迫不及待的用C語言重寫UNIX系統,在這個過程中,C語言也逐漸變得更加完善。 1983年,由于UNIX系統和C語言的巨大成功,Ken Thompson和Dennis M.Ritchie共同獲得了計算機界的最高榮譽——圖靈獎。 為了玩游戲開發出一套系統,為了開發系統又設計新的編程語言,他們對游戲的熱愛讓我們不得不敬佩! UNIX和C語言,得其一就可富可敵國,但他們并沒有申請專利,商標,而是把所有的一切都公布了出來,這使很多人都具有了自由地為UNIX和C語言添加各種代碼,做出各種貢獻的條件,極大的促進了它們的進步。 C語言越來越火,美國國家標準協會成立了C標準委員會,建立C語言的標準。委員會由硬件廠商,編譯器及其他軟件工具生產商,軟件設計師,顧問,學術界人士,C語言作者和應用程序員組成。1989年,ANSI發布了第一個完整的C語言標準——ANSI X3.159—1989,簡稱“C89”,不過人們也習慣稱其為“ANSI C”。 1999年1月,國際標準化組織(ISO)和國際電工委員會(IEC)發布了C語言的新標準,名叫ISO/IEC 9899:1999 - Programming languages -- C ,簡稱C99標準。這是C語言的第二個官方標準。這些標準的建立,是為了規范C語言的編寫,使C語言可以健康的發展。 03 為什么要學習C語言 時至今日,C語言仍是最火熱的編程語言之一,除C語言之外,排名前十的編程語言有6種直接使用,或者間接引用了C語言的語法,所以,學習C語言可以使我們更容易得學習其它語言。 C語言可以直接與計算機底層打交道,所以,對于操作系統的開發,C語言是不二之選。 在對程序的運行速度有嚴格要求的地方,例如“云計算“領域,對性能的要求特別高,C語言就是首選,因為C語言是執行最快的高級語言。 因為學過C語言的人最多,所以C語言是人們進行思想交流的首選語言。例如,書籍中如果要出現程序,最常見的就是C語言程序。在涉及編程能力考察的筆試和面試中,C語言通常都是必考的。 |
|