不知道該怎麼開頭,不過開頭的幾個字都寫了,就繼續寫下去吧。
看過很多以大話開頭的書籍,覺得也不怎麼樣,覺得還沒達到大話的層次,本人本著謙虛的精神,暫且以小話開頭吧;可能讀者看完,覺得連小話都談不上,先不管這些了;如果讀者確實都覺得連小話都談不上,到時候我再改個名字好了,這樣至少也對得起文章的標題。
言歸正傳,回到主題吧。
以前寫過關於c語言的學習資料,發現它真不是容易就能寫好的,裡面涉及到很多很多的東西;如果是以基礎為目的的,那需要描述的就更多了;如果是稍微提高一些的,那麼可能可以少寫一些字。不過,以c語言的本質出發,實在太複雜了,如果讓c語言之父來描述,估計那本書也沒能足以表達他所有的精神和思想,畢竟核心思想還是在dennis ritchie心裡,不過他已經離我們而去了,先默哀一下。
語言都是相通的
c語言,也是一種語言,和我們中國人平時說的中文其實是類似的,只不過乙個最終是給機器來理解的,乙個是讓人來理解的。我不知道哪種應該更複雜,但是,有一點是可以肯定的,是語言它的語法就不會太複雜,否則不要說是笨笨的機器,就是地球上應該是最高端的人類可能都不能很好地理解,如果這樣,這種語言的存在價值就需要思考了。"你好",這句話表示的就是個問候語,如果非要細節地分析內部的語法,可以理解成主謂結構吧,"你"是主語,"好"當成謂語吧。"int i = 1;"理解成定義乙個整形變數i;int表示變數型別,後面跟著變數名,再跟著賦值號=,再跟著乙個賦值的資料,最後以分號結束即可。這個結構可以用如下的表示式來表達:
型別 型別名 =初值;
上面的看起來,不是很複雜,就像理解"你從**來?", "我從這裡來。"這樣的話一樣。
為什麼需要編譯器
寫完了int i = 1;之後,機器如何理解呢?當然,沒有哪個機器能一下子理解這個。因為,有公司已經把機器的cpu設計成只能理解機器語言的了,那怎麼辦呢?只能用一種東西將上面的語句翻譯成機器指令,傳給機器的cpu,機器就能理解並執行了,而,這個東西就是編譯器。不過,有人可能會說,我使用了bash終端,我輸入ls -l再回車,就可以幫我執行命令?**有編譯器?
直譯器是什麼
上面說的那個過**沒用到編譯器,而是直譯器。其實直譯器就做了編譯器的事情,首先會解析輸入的字串ls -l,就像編譯器解析int i = 1;這個字串一樣,然後解析其中的語義,最後執行對應的操作。
直譯器到底是什麼
這個東西真的不用多想,它就是乙個經過編譯器編譯ok的程式而已。
直譯器執行程式會比對應編譯器編譯後的程式執行的慢
說的基本是對的,一般是這樣,因為直譯器多了一層解釋的過程,然後才執行。
結束語
好了,關於直譯器和編譯器的比較就先到此為止,前言的內容我不想寫一些廢話,因為多打一句廢話也是消耗能量的;
1 學習前言 C語言概述
參考自 c語言是我去年學的,學的還好吧,但是過了乙個假期,感覺很多東西都忘了,說實說,我無法接受這個事實!這多少與去年沒有接解一些網路筆記onenote還有部落格有關係,所以我決定花1 2個星期系統的複習整理一下。2016 11 5 1.豐富的運算子 計算機的基本功能就是計算,因此一門程式語言的計算...
1 學習前言 C語言概述
參考自 c語言是我去年學的,學的還好吧,但是過了乙個假期,感覺很多東西都忘了,說實說,我無法接受這個事實!這多少與去年沒有接解一些網路筆記onenote還有部落格有關係,所以我決定花1 2個星期系統的複習整理一下。2016 11 5 1.豐富的運算子 計算機的基本功能就是計算,因此一門程式語言的計算...
c語言小練習(1)
1 設計乙個函式,找出整型陣列元素的最小值 c語言程式設計題 import 巨集定義陣列的長度 define length 5 int main int argc,const char argv 從第乙個開始比較 int min arr 0 下標從0開始,長度為定義的length for int i...