在我的書中,它指出指針是地址並且有一個數值。您可以將指針的值打印爲cout < <(unsigned long)(p) 編寫代碼以比較p,p + 1,q和q + 1。解釋結果,我不知道這本書要我怎麼做,所以這裏是我的。有誰知道如果我這樣做是正確的指針值
int num = 20;
double dbl = 20.0;
int *p = #
double *q = &dbl;
cout << (unsigned long)(q) << endl;
q = q + 1;
cout << (unsigned long)(q) << endl;
cout << (unsigned long)(p) << endl;
p = p + 1 ;
cout << (unsigned long)(p) << endl;
雖然在大多數實現中,'unsigned long'和一個指針的大小是相同的,但如果它宣稱您總是可以使用強制類型轉換爲'unsigned long'來打印指針,那麼您的書是錯誤的。打印指針的正確方法是將其轉換爲void *'。 –
你在做這件事時有什麼疑問? –
@JoachimPileborg'void *'強制轉換甚至是必要的嗎? –