我試圖地址的值存儲在非指針int變量,當我嘗試將其轉換我從‘詮釋*’的編譯錯誤「無效的轉換「詮釋」」這是我使用的代碼:我如何將指針爲int
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
vector<int> test;
int main() {
int *ip;
int pointervalue = 50;
int thatvalue = 1;
ip = &pointervalue;
thatvalue = ip;
cout << ip << endl;
test.push_back(thatvalue);
cout << test[0] << endl;
return 0;
}
從你的代碼中,存儲一個指針向量並打印它們將是同一件事。 – chris
你爲什麼要那樣做?單獨的轉換不是很便攜(並不是每個環境都有'uintptr_t'),你可能想要對結果進行的任何算術運算都可以通過指針來實現,或者更不便攜。 – delnan
如果您將指針值轉換爲整數類型,那麼您很可能會做錯某些事情。這是一個合法的轉換,如果你做得對(如果機器有*一些*整數類型,足以保持結果而不丟失信息),但99%的時間你最好只是將指針視爲指針。如果你告訴我們你想用指針值做什麼,你認爲使用整數可以更好地完成,也許我們可以幫助你在沒有轉換的情況下做到這一點。 –