2016-04-06 71 views
0

,我們可以存儲在整數類型,例如內存地址,如果我這樣做,那麼我得到一個錯誤:通過使用指針像int* j = &i可以將內存地址存儲爲整型嗎?

int i; 
int j = &i; 

我知道我們可以做的,但我想知道是否有任何其他方式來存儲地址而不使用指針。請讓我知道如果有反正我可以用int類型做到這一點。

+0

在C++或C#中...? – immibis

+0

[reinterpret_cast](http://en.cppreference.com/w/cpp/language/reinterpret_cast)在C++中:「任何指針都可以轉換成任何足夠大的整數類型來保存指針的值(例如std: :uintptr_t的)「。 – songyuanyao

回答

2

將地址存儲在int中時,很可能部分地址將被截斷。我不確定爲什麼你需要將地址存儲爲int,但如果你真的需要,可以使用std :: intptr_t。它足夠大以容納一個地址。

+1

'std :: intptr_t'或'std :: uintptr_t'。沒有'std'的人可能來自C頭文件。不太可能是個大問題,但是你應該在C++中使用C++。 – doug65536