32位操作系統內存最大空間爲 2^32 = 2^10*2^10*2^10*4 = 4GB;
64位操作系統的內存分佈
內存棧裏存放程序運行的狀態;
64位操作系統
int 佔4字節
指針 佔8個字節
在聲明變量時,gcc 編譯器,會把類型相同的變量放在連續的地址空間;
函數也在棧中佔有地址;
自由可分配內存:
靜態變量
全局變量
常量
都存儲在數據段;
代碼段,代碼段保存源代碼的地址,
地址的運算:
指針偏移運算是運算速度最快的
指針變量,可以去替換指針常量,
數組是一種指針常量,可以用一個指針變量去表示;
堆和棧的內存地址是可以修改的,
但是代碼段的地址是不可以修改的。