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;
}
運作結果: