乙個指標變數佔幾個位元組問題

2021-06-22 04:59:34 字數 696 閱讀 4579

我們知道我們一般所了解的c及c++中,char佔1個位元組,int佔2個或者4個位元組,double佔8個位元組

舉個例子:

# includeint main(void)

{ using namespace std;

int i = 373;

double j = 4.5;

char ch = 'a';

int * p = &i;

double * q = &j;

char * r = &ch;

cout<< sizeof(i)<<'\0'<< sizeof(j)<<'\0'<< sizeof(ch)<

4 4 4

為什指標變數全變成4位元組?

指標不同於一般變數,存的是變數的位址,在同一架構下位址長度都是相同的(cpu的最大定址記憶體空間),所以不同型別的指標長度都一樣比如說乙個char 1位元組,可以存在0x0,也可以位於0xffffffff比如你的32位系統,指標長度為4,在64位作業系統下那麼就都是8了而和char占用1位元組還是100位元組無關,指標的範圍只和機器字和系統有關你輸出的4 4 4,說明指標長度為4位元組可以記錄的位址範圍是0x00000000~0xffffffff,這個範圍才是指標變數的值。

乙個指標變數佔幾個位元組問題

乙個指標變數到底佔幾個位元組 非重點 預備知識 sizeof 資料型別 功能 返回值就是該陣列型別所佔的位元組數 例子 sizeof int 4 sizeof char 1 sizeof double 8 sizeof 變數名 功能 返回值就是該變數所佔的位元組數假設p指向char型別 1個位元組 ...

乙個指標變數佔幾個位元組

首先 假設p指向char型別變數 佔1個位元組 假設q指向int型別變數 佔4個位元組 假設r指向double型別變數 佔8個位元組 那麼p q r它們本身所佔的位元組數是否一樣?這裡還得學習乙個小知識 sizeof 資料型別 此運算子功能 返回值就是該資料型別所佔的位元組數。sizeof 變數名 ...

php漢字佔幾個位元組,php乙個漢字幾個位元組

字元的簡介 在js中,中文佔兩個字元,英文佔乙個字元 在php中,不同編碼下不相同,在gbk gb2312編碼下乙個中文佔2個字元,utf 8 unicode編碼下乙個中文佔3個字元 推薦 php教程 php 位元組 和字元 php在utf 8編碼下,乙個漢字佔3個位元組,gbk編碼下只佔2個位元組...