《C champion》C语言的优点和缺点
(1)、C語言的適用范圍大。
C語言編寫的程序可應用于多種操作系統(如Windows、DOS、UNIX等)和機型,經常被用做底層開發,因此也被稱為被穩固的語言。
在C語言的編寫過程中,對操作系統和系統使用程序的要求以及需要對硬件進行操作的場合明顯優于其他高級語言,有很多大型軟件和操作系統都是用C語言編寫的,這樣的軟件安全性也非常高,所以,在一些對性能要求嚴格的領域,比如網絡程序的底層和網絡服務器端底層、地圖查詢等,也是用C語言進行編寫。
C語言的編譯器很多,包含的范圍也很廣,無論是巨型機、大型機、微型機,還是筆記本、家庭計算機、專業工作站,都可以找到匹配的C語言編譯器。
(2)、游戲開發。
C語言可以開發很多游戲,比如俄羅斯方塊、推箱子、貪吃蛇等等,有很多人就是因為玩游戲才對計算機編程產生了興趣,進而成為程序員,專門從事游戲開發工作。
目前流行的游戲編程語言是C++,而C語言與C++在某些方面區別還是不大的。
(3)、C語言具有很強的繪圖能力。
C語言可以編寫二維圖形、三維圖形和動畫,在游戲開發中可用于設計游戲人物形象等等。
用C語言可以編寫一些簡單的數學軟件,用于函數圖像的繪制,使數學學習更加直觀。
(4)、C語言可以編寫嵌入式計算機的程序。
什么是嵌入式計算機,在這里要簡單說明一下,舉個簡單的例子,手機大家都不陌生,手機里的應用軟件、小游戲等等,都是用C語言進行嵌入式開發的。
嵌入式,如果只看字面意識的話,就是把某個特定的程序嵌入到計算機中,這個程序是針對某個特定問題的解決方法,在嵌入式計算機中,只需要使用少數幾個芯片就可以將處理器、存儲器以及外設接口電路連接在一起,它屬于專用計算機,在汽車、船舶、航空、航天、通訊、制造、軍事等領域,嵌入式計算機比通用計算機更具有優勢。
嵌入式計算機系統的軟件一般都固化在存儲器芯片或單片機中,而且要求必須高效率地設計,軟件代碼要高質高效高運行速度,而C語言正符合這個要求,所以,絕大部分的嵌入式計算機的程序都是由C語言編寫的。
(5)、C語言具有很強的數據處理能力和表達能力。
C語言的數字計算能力,相對于其他高級編程語言是非常出眾的。
C語言包含的運算符非常廣泛,共有加、減、乘、除、乘方、開方、括號等34種運算符,這使得C語言的運算類型非常豐富。
C語言還包含多種數據結構,整型、字符型、邏輯型、數組、指針等,可以實現各種數據結構的運算和邏輯的判斷,配合C語言的多種運算符,可以實現難度極大的運算。
(6)、簡潔明了,方便靈活。
C語言種一共有40個關鍵字,9種控制語句,它把高級程序設計語言的結構和低級語言的實用性結合起來,同時各種運算符和表達式的運用,讓C程序對問題的求解可以通過多種方法獲得。
C語言中的強制轉換,整形數據、字符型數據和邏輯性數據之間的互相轉換,讓C程序的設計非常自由靈活,同時C語言對語法的限制不是很嚴格,這就給了編程更大的自由空間。
(7)、C語言允許直接訪問物理地址,并且可以對硬件進行操作。
前面已經介紹過C語言的發展歷程,從B語言開始,就已經非常接近硬件了,由于C語言能夠直接對硬件進行操作,所以它既具有高級程序設計語言的特點,又具有匯編語言的一些功能,比如,匯編語言具有微調控制能力,能夠直接對位、字節、地址進行操作,而這三者是計算機最基本的工作單元。
(匯編語言是用于特殊的中央處理單元的一系列內部指令)C語言將這些特點和功能全部化為己用,因此,C語言是一種融合性的語言。
(8)、C程序執行效率高,可移植性好。
C語言編寫程序相對緊湊,運行速度非常快,而且工作量小、易讀易調試、可修改可移植,從語言在不同機器上的代碼有86%是公共的,所以,如果要把一臺機器上編寫的C程序換到另一臺機器上,只需要稍微改幾個關鍵詞甚至不需要改動,就可以在一個完全不同的環境中運行。
移植性好也是相對的,對于某些硬件設備(比如顯示器、鍵盤、鼠標等)或操作系統的功能是不能移植的。
(9)、C語言能夠自身擴展。
C語言是由C庫提供各種各樣的功能支持的,而這是C庫是公開的,因此,我們可以對自己的編寫的函數放到C庫里,這樣就可以創建屬于自己的C程序,長期的積累會讓編程任務變得簡單許多。
(1)、數據的封裝性。
C語言編寫的程序在數據的安全性上有很大的缺陷,這也是導致C++語言出現的原因之一。
(2)、編程約束太低。
前面介紹C語言的優點的時候說C語言編寫程序簡潔明了,方便靈活,這主要是因為C語言的語法限制不太嚴格,對變量的類型約束不嚴格,這是優點也是缺點,雖然使編程的速度變快了,但是程序的安全性降低,尤其是C語言不會對數組下標是否越界進行檢查和對指針的使用等。
(3)、C語言比較難。
雖然C語言是最基礎的程序設計語言,但是也比其他高級語言較難掌握,C語言的程序員,對程序設計更加熟練。
總結
以上是生活随笔為你收集整理的《C champion》C语言的优点和缺点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《信息学奥赛一本通》高精除以高精,求它们
- 下一篇: 百练2811:熄灯问题