1. 程式人生 > >關於指標變數所佔記憶體空間大小的問題【轉】

關於指標變數所佔記憶體空間大小的問題【轉】

在編譯器裡定義一個指標變數,編譯器會給這個指標變數分配一個空間,這個空間裡存放的是一段記憶體首地址,先解釋一段記憶體,一段記憶體的大小是與你所定義的指標型別相關的,比如int,這段記憶體佔四個位元組(當然要看你的機器是多少位的了),則這段記憶體的首地址是第一個位元組的地址,如char型別,佔一個位元組,這段記憶體的首地址就是這個位元組的地址,還如結構體型別,此時記憶體大小要看該結構體的所有屬性所佔記憶體之和。現在解釋這個空間,編譯器給指標分配的空間大小和CPU的定址長度相關的,比如32位的CPU,它的定址長度為32位,那麼這個空間也就佔四個位元組,其實不管你定義什麼樣的指標型別,這個空間只是
用來存地址,只佔四個位元組,而真正該空間所存的地址是哪一段記憶體的首地址才和所定義的指標型別相關。