学习C语言的理由-别问我为什么,会用C语言,就是NB
一、前言
對于理工 科學生來說,這個答案可能很簡單,因為這是一門必修課。而對于程序員來說選擇一門編程語言,在某種程度上,對職業生涯的發展會產生重大的影響,所以必須慎 之又慎。那么,為什么要選擇一門誕生了將近半個世紀的語言?本文不是老生常談的廢話,如:”C 語言是編程的基礎”、”學好 C 語言,走遍天下都不怕”等等,本文力爭詳盡而又有理的回答這個問題,旨在成為最好的為什么要學習和使用 C 的文章。
二、C 語言
C 語言是由美國 AT&T 貝爾實驗室的研究員 Dennis Ritchie 在 B 語言的基礎上,最初作為改造 Unix 操作系統的開發語言,并伴隨著 Unix 操作系統興起而流行,后來,隨著微型計算機的發展,C 開始被移植到其他操作系統平臺上,成為獨立的程序設計語言。
技術分享
那么是因為一門語言一直位于排行榜的第一名就該去學習和使用嗎?顯然不是,人云亦云是程序員的大忌。為操作系統而生的標簽注定了 C 不可能平庸,實話實說,C 是一門很難學習和使用的編程語言,沒有編譯原理、操作系統和計算機體系結構扎實的基礎知識,根本不可能把 C 學的明白、用的順手。C 作為一門工程實用性極強的語言,提供了對操作系統和內存的精準控制,高性能的運行時環境,源碼級的跨平臺編譯等優點,才是我們必須學習和使用 C 的理由。
同時,幸運的是 C 也是個有趣的東西,對編程的認知越深,就會越覺得有意思,我簡單列舉一些 C 的優點:
2.1)結構化設計語言,語法清晰、結構簡單,模塊化使得程序的各個部分除了必要的信息交流外彼此獨立,便于開發、調試以及調試。
2.2)運算符多,把括號、賦值、強制類型轉換等都作為運算符處理,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
2.3)數據結構豐富,能實現各種復雜的數據類型的運算,引入指針、結構體概念使程序效率更高。
2.4)為操作系統而生,可以像匯編語言一樣對位、字節和地址進行操作,允許直接訪問物理地址對硬件進行操作,把高級語言的基本結構和語句與低級語言的實用性結合起來。
2.5)程序執行效率高,一般比匯編程序生成的目標代碼效率低 10%~20%。
2.6)可移植性好,C 語言抽象了針對 CPU 編程的細節,能廣泛應用于針對大型操作系統和系統軟件的編寫。
2.7)具備強大的繪圖功能,和 C++ 一樣也可以寫出很優雅的二維、三維圖形和動畫。
有人說,C 是 C++ 的子集,C 能做到的事,C++ 一樣能做到,并且還可以做的更好,如:三大面向對象特性、GUI 編程,誠然,我承認在 GUI 編程領域 C++ 占據著絕對的統治地位,至今無人能撼動。但真的有必要用 C++ 來替代 C 完成工作嗎?很多時候 C++ 解決問題的思路真的比 C 更先進嗎?
三、C 和 C++ 比較
寫到這一 段的時候我有一種戰戰兢兢、如履薄冰的感覺,畢竟 C、C++ 是廣大程序員都很熟悉東西,打起嘴炮來也是極其恐怖的,其實在關乎信仰的問題上,任何的爭論都是無止境的,也是無意義的。我希望大家不要把大量精力用來爭 論純粹的語言優劣上,而是去思考如何的正確的把事情做好,什么是正確的做事——快速高效的開發,保障快速穩定的運行,快速簡單的維護。
下圖是嘴炮大神 Linus Torvalds 當年抨擊 C++ 和他周圍那些 C++ 大牛程序員們的犀利言辭,其實我個人并不欣賞 Linus 的個人風格,我還是希望大家能心平氣和的談談 C 相比 C++ 的一些優點和現狀:
總結
以上是生活随笔為你收集整理的学习C语言的理由-别问我为什么,会用C语言,就是NB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 法媒评马云996:亚洲独有的洗脑我们不懂
- 下一篇: 程序员应该学习C语言的十个理由