對於乙個程式設計師來講,寫**的第一件是請,恐怕就是需要定義一些資料型別。而程式本身,就是對這些資料型別進行操作,有沒有人思考過,為什麼每種語言編寫的程式,開始都需要定義資料型別呢?
以下面的c**為例,我們來說明這個問題:
#includeint main()
這段**非常簡單,定義了四個資料,兩個型別。大家看,a=a+b
;和a1=a1+b1
;這兩個語句,幾乎一樣,那麼,我問你,這兩個語句,在編譯時,編譯器會用同一段**來替換這兩個語句嗎?
顯然不可是同一段**,因為浮點數和整數,在計算機裡面,使用了不同的處理器,整數使用普通的cpu,而浮點數必須使用浮點運算器。所以,這兩句話,產生的機器**完全不同!
那麼問題來了,編譯器如何知道,在碰到兩個數相加的時候,是使用浮點運算器的機器指令,還是使用普通cpu的機器指令?此時,編譯器就會檢查進行加法操作的兩個加數的資料型別,根據他們的資料型別,來確定到底使用哪乙個運算器的機器**
。此時,資料型別定義的意義就凸顯出來了。
總結:通過上述簡單的描述,我們就能夠清楚,任何程式語言(除了彙編,彙編只規定資料的字長),都會有自己的資料型別,資料型別背後,隱藏的是編譯器或者直譯器對資料處理方式的定義
。知道了這個以後,我們在定義資料型別的時候,就應該知道,我們定義的這種資料型別,可以進行哪些操作,這些操作的規則是什麼,這樣我們才算真正掌握了這個資料型別。
更高階的語言,例如c++可以定義自己的資料型別和資料型別的演算法,類的過載操作符就是乙個例子。
為什麼程式語言的都要定義資料型別
對於乙個程式設計師來講,寫 的第一件是請,恐怕就是需要定義一些資料型別。而程式本身,就是對這些資料型別進行操作,有沒有人思考過,為什麼每種語言編寫的程式,開始都需要定義資料型別呢?以下面的c 為例,我們來說明這個問題 includeint main 這段 非常簡單,定義了四個資料,兩個型別。大家看,...
為什麼人人都要學程式設計
如果你對 猩球崛起 這部電復印象深刻,你一定不會忘記黑猩猩凱撒是如何一步一步從猩猩變成和人類相似,甚至智力超越大部分人類的智慧型生物。其中人類是如何判斷出猩猩的智力達到和人類相似的水平呢?那就是漢諾塔的遊戲,如果在一段時間內,可以達到了15步就完成遊戲,那麼就認為猩猩的智力已經達到人類的水平。為什麼...
為什麼人人都要學程式設計
如果你對 猩球崛起 這部電復印象深刻,你一定不會忘記黑猩猩凱撒是如何一步一步從猩猩變成和人類相似,甚至智力超越大部分人類的智慧型生物。其中人類是如何判斷出猩猩的智力達到和人類相似的水平呢?那就是漢諾塔的遊戲,如果在一段時間內,可以達到了15步就完成遊戲,那麼就認為猩猩的智力已經達到人類的水平。為什麼...