天天看點

32位機器和64位機器指針是4位元組和8位元組?

1、32為機器和64位機器是什麼意思?

32位機器是指處理器一次能處理的最大位數是32位,通常指CPU裡面的通用寄存器的資料寬度是32個比特位。而64位機器表示一次能處理的最大資料位數是64位。

32位機器最大尋址位址空間是2^32次方個記憶體單元(4G),注意1G=2^30,而每個記憶體單元大小都是一個位元組,是以32位機器最大尋址空間是4GB。

而64位機器最大尋址空間是4GB^32,這個數字相當龐大,通常隻能尋址到128GB。

為什麼32位機器上指針大小是4個位元組,64位機器上是8個細節?

很簡單,因為32位機器的尋址位址空間是4G,每個位址是32位,恰好是4個位元組。即指針大小是4個位元組。而64位機器的每個位址是64位是8個位元組,是以指針是8個位元組。

#include <stdio.h>
#include<stdlib.h>
#include <math.h>

int main()
{
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(double*));
	return 0;
}

           

運作結果:

32位機器和64位機器指針是4位元組和8位元組?

繼續閱讀