天天看點

C語言入門(1)——C語言概述

1、程式與程式設計語言

我們使用計算機離不開程式。程式告訴計算機應該怎樣運作。程式(Program)是一個精确說明怎樣進行計算的指令序列。這裡的計算能夠是數學運算,比方通過一些數學公式求解,也能夠是符号運算。比方我們使用world編輯一個文檔或是通過搜尋引擎檢索資訊。

 計算機本質上是由數字電子電路組成的運算機器,全部的運算都僅僅能通過數字來表示和處理。通過将各種資料轉換為數字表示,能夠使計算機處理各種資訊。比方音樂、圖檔、電影等。

 程式由一系列指令組成的,指令就是指揮計算機做某種運算的指令。通常包括下面六類:

 輸入類指令:用于從鍵盤、檔案或者其他裝置擷取資料。

輸出類指令:用于把資料顯示到螢幕。或者存入一個檔案。或者發送到其他裝置,比方列印機。

基本運算類指令:用于運作最主要的數學運算(加減乘除)和資料存取。事實上輸入和輸出也屬于資料存取。

測試和分支類指令:用于推斷某個條件是否成立,然後依據不同的結果運作不同的興許指令。

循環類指令:用于反複運作一系列操作。

對于程式來說,有上面這幾類指令就足夠了。你曾用過的不論什麼一個程式,無論它有多麼複雜,都是由上面這幾類指令組成的。

 編敲代碼能夠說就是這樣一個過程:把複雜的任務分解成子任務,把子任務再分解成更簡單的任務,層層分解,直到最後簡單得能夠用以上指令來完畢。

 在不同的程式設計語言中。指令具有不同的形式。通常“指令”這個詞專指機器語言或者彙編語言等低級語言中的指令,而在C語言、C++、Java、Python等進階語言中通常稱為語句或表達式。

 計算機語言通常分為低級語言和進階語言。計算機所能直接了解的指令是機器語言,它是由一串串由"0"和"1"組成的指令序列組成的。因為機器語言對于人來來說記憶困難,難以了解。人們對它進行了改進:用一些簡潔的英文字母、符号串來替代一個特定的指令的二進制串,出現了彙編語言。機器語言和彙編語言都十分依賴于機器硬體。這兩種語言同屬低級語言

 因為低級語言比較冗長、複雜、easy出錯。并且須要有很多其他的計算機專業知識。是以又出現了進階語言。進階不但将很多相關的機器指令合成為單條指令并且去掉了與詳細操作有關但與完畢工作無關的細節,比如使用堆棧、寄存器等,這樣就大大簡化了程式中的指令。

 經常使用的進階語言非常豐富。如:C、C++、JAVA、C#、python等。

2、C語言簡單介紹

C語言是一種計算機程式設計語言,它既具有進階語言的特點。又具有彙編語言的特點。它由美國貝爾實驗室的Dennis M. Ritchie于1972年推出。之後C語言先後被移植到大、中、小及微型機上,它即能夠作為工作系統設計語言,編寫系統應用程式。也能夠作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。它的應用範圍廣泛。具備非常強的資料處理能力,适于編寫系統軟體、三維、二維圖形和動畫,詳細應用比如單片機以及嵌入式系統開發。

 C語言是一種通用的、過程式的程式設計語言。廣泛用于系統與應用軟體的開發。具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程式猿中備受青睐。

近期25年是使用最為廣泛的程式設計語言。

在作業系統和系統使用程式以及須要對硬體進行操作的場合,用C語言明顯優于其他進階語言。

C語言的設計影響了很多後來的程式設計語言。比如C++、Objective-C、Java、C#等。

 二十世紀八十年代。為了避免各開發廠商用的C語言文法産生差異,由美國國家标準局為C語言訂定了一套完整的國際标準文法,稱為ANSI C。作為C語言的标準。二十世紀八十年代至今的有關程式開發工具,一般都支援符合ANSI C的文法。C語言從誕生到如今先後有了三個标準:ANSI C / C89标準、C99标準和C11标準。

 C語言的長處非常多。主要有下面幾點:

 1、簡潔緊湊、靈活友善

C語言一共僅僅有32個keyword,9種控制語句。程式書寫形式自由,區分大寫和小寫。

把進階語言的基本結構和語句與低級語言的有用性結合起來。C 語言能夠像彙編語言一樣對位、位元組和位址進行操作,而這三者是計算機最主要的工作單元。

2、運算符豐富

C語言的運算符包括的範圍非常廣泛。共同擁有34種運算符。C語言把括号、指派、強制類型轉換等都作為運算符處理。

進而使C語言的運算類型極其豐富,表達式類型多樣化。

靈活使用各種運算符能夠實如今其他進階語言中難以實作的運算。

3、資料類型豐富

C語言的資料類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實作各種複雜的資料結構的運算。并引入了指針概念,使程式效率更高。

4、表達方式靈活有用

C語言提供多種運算符和表達式值的方法,對問題的表達可通過多種途徑獲得。其程式設計更主動、靈活。它文法限制不太嚴格。程式設計自由度大,如對整型量與字元型資料及邏輯型資料能夠通用等。

5、同意直接訪問實體位址。對硬體進行操作

因為C語言同意直接訪問實體位址,能夠直接對硬體進行操作。是以它既具有進階語言的功能,又具有低級語言的很多功能,能夠像彙編語言一樣對位(bit)、位元組和位址進行操作,而這三者是計算機最主要的工作單元,可用來寫系統軟體。[20]

6、生成目标代碼品質高。程式運作效率高

C語言描寫叙述問題比彙編語言迅速。工作量小、可讀性好,易于調試、修改和移植,而代碼品質與彙編語言相當。

C語言一般僅僅比彙程式設計式生成的目标代碼效率低10%~20%。[19]

7、可移植性好

C語言在不同機器上的C編譯程式,86%的代碼是公共的,是以C語言的編譯程式便于移植。在一個環境上用C語言編寫的程式,不修改或稍加修改,就可移植到還有一個全然不同的環境中運作。[19]

8、表達力強

C語言有豐富的資料結構和運算符。

包括了各種資料結構,如整型、數組類型、指針類型和聯合類型等。用來實作各種資料結構的運算。

C語言能直接訪問硬體的實體位址,能進行位(bit)操作。兼有進階語言和低級語言的很多長處。

它既可用來編寫系統軟體。又可用來開發應用軟體,已成為一種通用程式設計語言。

另外C語言具有強大的圖形功能,支援多種顯示器和驅動器。

且計算功能、邏輯推斷功能強大。

3、C語言怎樣生成程式

         我們編寫好的C語言代碼是不能直接運作的,須要一系列的步驟将其轉換成能夠在硬體上運作的程式(可運作代碼)。

當中最重要的步驟是進行編譯和連結。

編譯就是把文本形式源碼翻譯為機器語言形式的目标檔案的過程。編譯過程須要使用編譯器。連結是把目标檔案、作業系統的啟動代碼和用到的庫檔案進行組織形成終于生成可運作代碼的過程。連結過程須要使用連結器。

         編譯和連結的流程例如以下:

C語言入門(1)——C語言概述

4、C語言的編譯器

C語言的編譯器種類繁多,比較經常使用的有下面幾種。

1、GNU/GCC

     這是由GNU組織開發的編譯器。最初用于Unix系統。

眼下GCC是Unix/Linux系統的必備編譯器。

官網:http://gcc.gnu.org/

2、VC編譯器

     嚴格意義上說VC不算編譯器。應該是內建了編譯器的IDE,是Windows系統開發的首選。目前最新版是VC2013。

官網:http://www.visualstudio.com/

3、Intel C++ Compiler 

Intel C++Compiler是美國 Intel 公司開發的 C/C++ 編譯器,适用于 Linux、Microsoft Windows 和 Mac OS X 作業系統。該編譯器的最新公布是 Intel C++ Compiler 2013 版

官網:http://software.intel.com/en-us/articles/intel-compilers/

 4、mingw32/cygwin/Djgpp編譯器

這三個都是GNU/GCC的分支。

繼續閱讀