程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言的特點與缺點

C語言的特點與缺點

編輯:關於C
C語言的特點可以概括如下:

1. C語言簡潔、緊湊、靈活。C語言的核心內容很少,只有32個關鍵字,9種控制語句;程序書寫格式自由,壓縮了一切不必要的成分。

2. 表達方式簡練、實用。C語言有一套強有力的運算符,達44種,可以構造出多種形式的表達式,用一個表達式就可以實現其它語言可能要用多條語句才能實現的功能。

3. 具有豐富的數據類型。數據類型越多,數據的表達能力就越強。C語言具有現代語言的各種數據類型,如:字符型、整型、實型、數組、指針、結構體和共用體等。可以實現諸如鏈表、堆棧、隊列、樹等各種復雜的數據結構。其中指針使參數的傳遞簡單、迅速,節省內存。

4. 具有低級語言的特點。具有與匯編語言相近的功能和描述方法,如地址運算、二進制數位運算等,對硬件端口等資源直接操作,可充分使用計算機資源。因此,C語言既具有高級語言便於學習和掌握的特點,又具有機器語言或匯編語言對硬件的操作能力。所以,C語言既可以作為系統描述語言,又可以作為通用的程序設計語言。

5. 是一種結構化語言,適合於大型程序的模塊化設計。C語言提供了編寫結構化程序的基本控制語句,如if~else語句、switch語句、while語句、do~while語句等。C程序是函數的集合,函數是構成C程序的基本單位,每個函數具有獨立的功能,函數之間通過參數傳遞數據。除了用戶編寫的函數外,不同的編譯系統、操作系統都相伴還提供了大量的庫函數供用戶使用,如輸入輸出函數、數學函數、字符串處理函數等,靈活使用庫函數可以簡化程序的設計。

6. 各種版本的編譯系統都提供了預處理命令和預處理程序。預處理擴展了C語言的功能,提高了程序的可移植性,為大型程序的調試提供了方便。

7. 可移植性好。程序可以從一個環境不經改動或稍加改動就可移植到另一個完全不同的環境中運行。這是因為系統庫函數和預處理程序將可能出現的與機器有關的因素與源程序隔開,這就容易在不同的C編譯系統之間重新定義有關內容。

8. 生成的目標代碼質量高。由C源程序得到的目標代碼的運行效率比用匯編語言寫的也不過只低10%到20%,可充分發揮機器的效率。

9. C語言語法限制不嚴,程序設計自由度大。C程序在運行時不做諸如數組下標越界和變量類型兼容性等檢查,而是由編程者自己保證程序的正確性。C語言幾乎允許所有的數據類型的轉換,字符型和整型可以自由混合使用,所有類型均可作邏輯型,可自己定義新的類型,還可以把某類型強制轉換為指定的類型。實際上,這使編程者有了更大的自主性,能編寫出靈活、優質的程序,同時也給初學者增加了一定的難度。所以,只有在熟練掌握C語言程序設計後,才能體會出其靈活的特性。

通過上述的介紹,已經了解了C語言的若干特點。C語言雖然是一種優秀的計算機程序設計語言,但也存在以下的一些缺點,了解這些缺點,才能夠在實際使用中揚長避短。

1. C程序的錯誤更隱蔽。C語言的靈活性使得用它編寫程序時更容易出錯,而且C語言的編譯器不檢查這樣的錯誤。與匯編語言類似,需要程序運行是才能發現這些邏輯錯誤。C語言還會有一些隱患,需要程序員重視,比如將比較的"=="寫成賦值"=",語法上沒有錯誤,這樣的邏輯錯誤不易發現,要找出來往往十分費時。

2. C程序有時會難以理解。C語言語法成分相對簡單,是一種小型語言。但是,其數據類型多,運算符豐富且結合性多樣,使得對其理解有一定的難度。有關運算符和結合性,人們最常說的一句話是“先乘除,後加減,同級運算從左到右”,但是C語言遠比這要復雜。發明C語言時,為了減少字符輸入,C語言比較簡明,同時也使得C語言可以寫出常人幾乎無法理解的程序。

3. C程序有時會難以修改。考慮到程序規模的大型化或者說巨型化,現代編程語言通常會提供“類”和“包”之類的語言特性,這樣的特性可以將程序分解成更加易於管理的模塊。然而C語言缺少這樣的特性,維護大型程序顯得比較困難。

早期的計算機語言有BASIC語言、Fortran語言、ALGOL語言、COBOL語言和Pascal語言等,近來使用的人相對要少得多,除非是既有的軟件系統使用這些語言,或者一些人想使用現成的程序或軟件,才會使用這些語言。

現在的軟件開發中更多地使用C++語言和Java語言,在開發Web應用軟件時則會使用JSP語言和PHP語言等。隨著面向對象技術的廣泛普及,Java語言受到很多人的青睐,這是由於Java語言具有編程效率高,降低軟件開發成本,不需要考慮存儲的分配與回收等程序細節,編寫出來的程序更具有健壯性,但是也一定程度上付出了運行效率的代價。C++語言則介於C語言和Java語言之間,也是面向對象的計算機語言,同時具有編程效率高和運行速度快的特點。

C語言是一種過程性的語言,職業的程序員或軟件開發人員應該學習一下該計算機語言。這是因為,C語言可以代替機器語言或匯編語言編寫運行速度快的程序;對於單片機應用、嵌入式系統和通信軟件等是不可替代的;C語言的指針與計算機硬件的地址具有異曲同工之處,是了解計算本質的鑰匙;通過C語言相關的存儲分配函數,可以深入了解計算機存儲分配的原理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved