對指標占用位元組大小的理解

2021-06-25 12:58:50 字數 455 閱讀 2706

最近因為找工作,所以就複習了一遍c語言。就把自己對指標的一些理解說下吧。

聽到指標,第一反應就是位址。再多看點書就可以知道指標佔的位元組是4。一般的面試題上面也會出這樣的題。樓主比較愛佔牛角尖,為什麼整形佔的是4個位元組,字元型佔的是1個位元組。而指標佔的位元組大小是4呢。如果換到51微控制器或者msp430上邊,指標的位元組大小還是4嗎?

果斷跑去翻閱了下好幾本彙編的書。上邊對指標比較具體的解釋是指標是暫存器和記憶體字。說到暫存器,這時候肯定能想到暫存器在不同的操作平台上位數是不同的;記憶體字也是如此。例如在8086上我們知道,記憶體字就是16位的,而x86系統是32位的。這就很好的解釋了為什麼網上和書上那麼多答案都說指標占得位元組大小為4了。對於windos的平台,32位的作業系統,暫存器和記憶體器是32位的。所以就是4個位元組;而換到其他的平台,得根據操作平台而定的。就和整形資料在不同平台的資料範圍一樣。

當然網上許多朋友也對這個問題提出不同的看法。望輕噴!!

String型別占用位元組大小

system.out.println charset.defaultcharset 獲取ide預設編碼型別 string s new string china getbytes byte b s.getbytes system.out.println b.length 以上 可以輸出 china 所...

C語言資料型別占用位元組大小

在昨天的筆試的時候碰到了乙個關於不同的資料型別占用位元組大小的問題,於是就想歸納整理一下關於這方面的問題。於是就寫了一下,在linux系統下用gcc編譯驗證了一下,以供參考。16位編譯器 char unsigned char 1位元組 char 2位元組 short int 2位元組 int uns...

C語言計算結構體占用位元組大小總數

在學習c語言的時候很多人可能遇到了和我同樣的問題,就是無法正確計算出c語言結構體所佔位元組的總的大小。首先,在開始計算結構體占用位元組大小之前,我們要先搞懂什麼是結構體的對齊和補齊。為什麼會有結構體的對齊與補齊。cpu的資料傳輸方式 cpu的資料傳輸方式是一次傳輸2個 32位 或者8個 64位 位元...