摘要:對于一個程序員來講,寫代碼的第一件是請,恐怕就是需要定義一些數(shù)據(jù)類型。更高級的語言,例如可以定義自己的數(shù)據(jù)類型和數(shù)據(jù)類型的算法,類的重載操作符就是一個例子。
對于一個程序員來講,寫代碼的第一件是請,恐怕就是需要定義一些數(shù)據(jù)類型。而程序本身,就是對這些數(shù)據(jù)類型進(jìn)行操作,有沒有人思考過,為什么每種語言編寫的程序,開始都需要定義數(shù)據(jù)類型呢?
以下面的C代碼為例,我們來說明這個問題:
#includeint main() { int a=100; int b=200; double a1=10.1; double b1=10.2; a=a+b; a1=a1+b1; getchar(); return 0; }
這段代碼非常簡單,定義了四個數(shù)據(jù),兩個類型。大家看,a=a+b;和a1=a1+b1;這兩個語句,幾乎一樣,那么,我問你,這兩個語句,在編譯時(shí),編譯器會用同一段代碼來替換這兩個語句嗎?
顯然不可是同一段代碼,因?yàn)楦↑c(diǎn)數(shù)和整數(shù),在計(jì)算機(jī)里面,使用了不同的處理器,整數(shù)使用普通的CPU,而浮點(diǎn)數(shù)必須使用浮點(diǎn)運(yùn)算器。所以,這兩句話,產(chǎn)生的機(jī)器代碼完全不同!
那么問題來了,編譯器如何知道,在碰到兩個數(shù)相加的時(shí)候,是使用浮點(diǎn)運(yùn)算器的機(jī)器指令,還是使用普通CPU的機(jī)器指令?此時(shí),編譯器就會檢查進(jìn)行加法操作的兩個加數(shù)的數(shù)據(jù)類型,根據(jù)他們的數(shù)據(jù)類型,來確定到底使用哪一個運(yùn)算器的機(jī)器代碼。此時(shí),數(shù)據(jù)類型定義的意義就凸顯出來了。
總結(jié):
通過上述簡單的描述,我們就能夠清楚,任何編程語言(除了匯編,匯編只規(guī)定數(shù)據(jù)的字長),都會有自己的數(shù)據(jù)類型,數(shù)據(jù)類型背后,隱藏的是編譯器或者解釋器對數(shù)據(jù)處理方式的定義。知道了這個以后,我們在定義數(shù)據(jù)類型的時(shí)候,就應(yīng)該知道,我們定義的這種數(shù)據(jù)類型,可以進(jìn)行哪些操作,這些操作的規(guī)則是什么,這樣我們才算真正掌握了這個數(shù)據(jù)類型。
更高級的語言,例如C++可以定義自己的數(shù)據(jù)類型和數(shù)據(jù)類型的算法,類的重載操作符就是一個例子。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/102063.html
摘要:平時(shí)在復(fù)習(xí)基礎(chǔ)知識時(shí),經(jīng)常會遇到數(shù)據(jù)類型基礎(chǔ)數(shù)據(jù)類型內(nèi)置對象包裝類型對象,檢測數(shù)據(jù)類型時(shí),用到的值,感覺都差不多,但是又有差異。值與數(shù)據(jù)類型關(guān)系對比下圖,即可知值相較于基礎(chǔ)數(shù)據(jù)類型少多 平時(shí)在復(fù)習(xí)JS基礎(chǔ)知識時(shí),經(jīng)常會遇到JS數(shù)據(jù)類型、基礎(chǔ)數(shù)據(jù)類型、內(nèi)置對象、包裝類型對象,檢測數(shù)據(jù)類型時(shí),用到的typeof值,感覺都差不多,但是又有差異。今天特地整理下,方便理解。 JS數(shù)據(jù)類型 基礎(chǔ)數(shù)...
摘要:知識點(diǎn)閉包問題執(zhí)行機(jī)制定時(shí)器線程理解構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)屬性上方法的對比中都經(jīng)歷了什么深入理解中的屬性和特性中的方法詳解為什么編程語言的都要定義數(shù)據(jù)類型中與的區(qū)別輕松理解基本包裝對象中數(shù)據(jù)類型內(nèi)置對象包裝類型對象關(guān)系基礎(chǔ)之?dāng)?shù)組中的邏輯 JS知識點(diǎn) JS hoist JS閉包問題 JS執(zhí)行機(jī)制 JS定時(shí)器線程理解 構(gòu)造函數(shù)內(nèi)的方法與構(gòu)造函數(shù)prototype屬性上方法的對比 JS...
摘要:一旦有一方改變,要及時(shí)通知對方,否則就會出現(xiàn)問題。對于,主要處理高性能的傳輸,以及網(wǎng)絡(luò)的錯誤和異常。這個框架是在協(xié)議中使用的。就是網(wǎng)絡(luò)文件系統(tǒng)。唯一標(biāo)識請求和回復(fù)。 【前五篇】系列文章傳送門: 網(wǎng)絡(luò)協(xié)議 14 - 流媒體協(xié)議:要說愛你不容易 網(wǎng)絡(luò)協(xié)議 15 - P2P 協(xié)議:小種子大學(xué)問 網(wǎng)絡(luò)協(xié)議 16 - DNS 協(xié)議:網(wǎng)絡(luò)世界的地址簿 網(wǎng)絡(luò)協(xié)議 17 - HTTPDNS:私人定制...
摘要:一旦有一方改變,要及時(shí)通知對方,否則就會出現(xiàn)問題。對于,主要處理高性能的傳輸,以及網(wǎng)絡(luò)的錯誤和異常。這個框架是在協(xié)議中使用的。就是網(wǎng)絡(luò)文件系統(tǒng)。唯一標(biāo)識請求和回復(fù)。 【前五篇】系列文章傳送門: 網(wǎng)絡(luò)協(xié)議 14 - 流媒體協(xié)議:要說愛你不容易 網(wǎng)絡(luò)協(xié)議 15 - P2P 協(xié)議:小種子大學(xué)問 網(wǎng)絡(luò)協(xié)議 16 - DNS 協(xié)議:網(wǎng)絡(luò)世界的地址簿 網(wǎng)絡(luò)協(xié)議 17 - HTTPDNS:私人定制...
閱讀 2482·2021-10-14 09:43
閱讀 2541·2021-09-09 09:34
閱讀 1662·2019-08-30 12:57
閱讀 1263·2019-08-29 14:16
閱讀 784·2019-08-26 12:13
閱讀 3254·2019-08-26 11:45
閱讀 2352·2019-08-23 16:18
閱讀 2731·2019-08-23 15:27