溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)類型之愚見

發(fā)布時(shí)間:2020-03-02 05:04:51 來源:網(wǎng)絡(luò) 閱讀:211 作者:pycoming 欄目:開發(fā)技術(shù)

程序員的大部分時(shí)間都在忙于代碼的實(shí)現(xiàn),不管是c語言 還是c++ java...都涉及到了數(shù)據(jù)類型。

但是什么是數(shù)據(jù)類型呢?失眠的晚上,我思考很久。讓大家見笑。

今天就以c語言的數(shù)據(jù)類型為例,簡單聊一下數(shù)據(jù)類型這個(gè)名詞吧。


聊到數(shù)據(jù)類型,就首先聊一下內(nèi)存。不管寫的代碼是在unix linux 還是windows上運(yùn)行,都需要涉及到內(nèi)存的使用。但是程序中看到的這些只是內(nèi)存的地址編號(hào),我們將其稱為虛擬地址。

而實(shí)際的物理內(nèi)存地址,作為應(yīng)用程序員是根本看不到的。 在32bit機(jī)上,cpu可以訪問的虛擬地址編號(hào)可以從0~4G-1.每個(gè)地址編號(hào)可以對(duì)應(yīng)一個(gè)字節(jié)物理地址空間,也可以不對(duì)應(yīng)具體的物理地址空間。


int var_i=10;

char var_c='m';

每個(gè)變量和常量都有自己的地址空間。怎樣才能訪問這些地址空間里的內(nèi)容呢?

首先根據(jù)變量或常量的名字找到對(duì)應(yīng)的地址空間,然后訪問空間里的內(nèi)容。

這句話沒有問題,那從地址空間里取一個(gè)字節(jié)呢?兩個(gè)字節(jié)呢?還是n個(gè)字節(jié)呢?

根據(jù)什么決定呢? 那就是數(shù)據(jù)類型。如果是char類型的,那就取一個(gè)字節(jié)的內(nèi)容。如果是int,那就取四個(gè)字節(jié)的內(nèi)容,如果是short,那就取2個(gè)字節(jié)的內(nèi)容。如果是float,那就取四個(gè)字節(jié)的內(nèi)容。

int? ?float都是四個(gè)字節(jié),那又如何區(qū)分呢?

取出來數(shù)據(jù)以后,還有字節(jié)數(shù)據(jù)的組織方式,根據(jù)不同的類型來組織數(shù)據(jù)。

這就是數(shù)據(jù)類型。

總之,數(shù)據(jù)類型就是訪問內(nèi)存的規(guī)則而已。

想起來魯迅先生說過的?!捌鋵?shí)地上本沒有路,走的人多了,也便成了路”

其實(shí)計(jì)算機(jī)的世界里本沒有數(shù)據(jù)類型,規(guī)則使用多了,便有了數(shù)據(jù)類型。


歡迎大家交流溝通。愚見










向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI