1972年,美國貝爾實驗室成功地開發了C語言。在當時,C語言被認為是高級語言。它的許多新功能使匯編程序員羨慕不已。就像今天的Go語言一樣,它在產生時就受到追捧。C語言也是一種“時尚”語言,許多后來的軟件都以C語言作為開發語言,如Windows和Linux等。那么到底C語言究竟是一門怎樣的語言?C語言與C++是什么關系?
C語言究竟是一門怎樣的語言?
對于大部分程序員,C語言是學習編程的第一門語言,很少有不了解C的程序員。
C語言除了能讓你了解編程的相關概念,帶你走進編程的大門,還能讓你明白程序的運行原理,比如,計算機的各個部件是如何交互的,程序在內存中是一種怎樣的狀態,操作系統和用戶程序之間有著怎樣的“愛恨情仇”,這些底層知識決定了你的發展高度,也決定了你的職業生涯。
如果你希望成為出類拔萃的人才,而不僅僅是碼農,這么這些知識就是不可逾越的。也只有學習C語言,才能更好地了解它們。有了足夠的基礎,以后學習其他語言,會觸類旁通,很快上手,7天了解一門新語言不是神話。
C語言概念少,詞匯少,包含了基本的編程元素,后來的很多語言(C++、Java等)都參考了C語言,說C語言是現代編程語言的開山鼻祖毫不夸張,它改變了編程世界。
正是由于C語言的簡單,對初學者來說,學習成本小,時間短,結合本教程,能夠快速掌握編程技術。
C語言和Java、C++、Python、C#、JavaScript等高級編程語言相比,C語言涉及到的編程概念少,附帶的標準庫小,所以整體比較簡潔,容易學習,非常適合初學者入門。
C語言是計算機產業的核心語言
也許是機緣巧合,C語言出現后不久,計算機產業開始爆發,計算機硬件越來越小型化,越來越便宜,逐漸進入政府機構,進入普通家庭,C語言成了編程的主力軍,獲得了前所未有的成功,操作系統、常用軟件、硬件驅動、底層組件、核心算法、數據庫、小游戲等都使用C語言開發。
雷軍說過,站在風口上,豬都能飛起來;C語言就是那頭豬,不管它好不好,反正它飛起來了。
C語言在計算機產業大爆發階段被萬人膜拜,無疑會成為整個軟件產業的基礎,擁有核心地位。
軟件行業的很多細分學科都是基于C語言的,學習數據結構、算法、操作系統、編譯原理等都離不開C語言,所以大學將C語言作為一門公共課程,計算機相關專業的同學都要學習。
C語言被譽為“上帝語言”,它不但奠定了軟件產業的基礎,還創造了很多其它語言,例如:
· PHP、Python等都是用C語言開發出來的,雖然平時做項目的時候看不到C語言的影子,但是如果想深入學習PHP和Python,那就要有C語言基礎了。
· C++和Objective-C干脆在C語言的基礎上直接進行擴展,增加一些新功能后變成了新的語言,所以學習C++和Objective-C之前也要先學習C語言。
C語言與C++是什么關系?
早期并沒有”C++“這個名字,而是叫做”帶類的C“。
”帶類的C“是作為C語言的一個擴展和補充出現的,目的是提高開發效率,如果你有JavaWeb開發經驗,那么你可以將它們的關系與Java和JSP的關系類比。
這個時期的C++非常粗糙,僅支持簡單的面向對象編程,也沒有自己的編譯器,而是通過一個預處理程序(名字叫cfront),先將C++代碼”翻譯“為C語言代碼,再通過C語言編譯器合成最終的程序。
隨著C++的流行,它的語法也越來越強大,已經能夠很完善的支持面向對象編程和泛型編程。
但是一直也沒有誕生出新的C++編譯器,而是對原來C編譯器不斷擴展,讓它支持C++的新特性,所以我們通常稱為C/C++編譯器,因為它同時支持C和C++,例如Windows下的微軟編譯器(cl.exe),Linux下的GCC編譯器。
也就是說,你寫的C、C++代碼都會通過一個編譯器來編譯,很難說C++是一門獨立的語言,還是對C的擴展。
C++是在C語言的基礎上進行的擴展,C++包含了C語言的全部內容。
從“學院派”的角度來說,C++支持面向過程編程、面向對象編程和泛型編程,而C語言僅支持面向過程編程。
就面向過程編程而言,C++和C幾乎是一樣的,所以學習了C語言,也就學習了C++的一半,不需要從頭再來。
沒有任何編程基礎的讀者,建議先從C語言學起,不要貪多嚼不爛。等你熟悉了C語言,能編寫出上百行的代碼,就對編程有些概念了,這個時候再去了解C++究竟在C語言基礎上增加了什么,你就站在了一定的高度。
上述就是關于C語言究竟是一門怎樣的語言,以及C語言與C++是什么關系的全部內容介紹,想了解更多關于C語言的信息,請繼續關注中培偉業。