c語言算底層語言嗎?
C語言是高級語言中的底層語言,它有下面幾個特點:
1. C語言是一個靜態(tài)弱類型語言,在使用變量時需要聲明變量類型,但是類型間可以有隱式轉(zhuǎn)換;
2. 不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起,以此來聲明新的數(shù)據(jù)類型;
3. C語言可以用 typedef 關鍵字來定義類型的別名,以此來達到變量類型的抽象;
4. C語言是一個有結(jié)構(gòu)化程序設計、具有變量作用域以及遞歸功能的過程式語言;
5. C語言傳遞參數(shù)一般是以值傳遞,也可以傳遞指針;
6. 通過指針,C語言可以容易地對內(nèi)存進行低級控制,然而這引入了非常大的編程復雜度;
7. 編譯預處理讓C語言的編譯更具有彈性,比如跨平臺。
C語言的這些特性,可以讓程序員在微觀層面寫出非常精細和精確的編程操作,讓程序員可以在底層和系統(tǒng)細節(jié)上非常自由、靈活和精準地控制代碼。然而,在代碼組織和功能編程上,C語言的上述特性,卻不那么美妙了。
從某種角度上來說,C語言的偉大之處在于——使用C語言的程序員在高級語言的特性之上還能簡單地做任何底層上的微觀控制。這是C語言的強大和優(yōu)雅之處。
也有人說,C語言是高級語言中的匯編語言。
不過,這只是在針對底層指令控制和過程式的編程方式。而對于更高階更為抽象的編程模型來說,C語言這種基于過程和底層的初衷設計方式就會成為它的短板。
因為,在編程這個世界中,更多的編程工作是解決業(yè)務上的問題,而不是計算機的問題,所以,我們需要更為貼近業(yè)務更為抽象的語言。