包含數據的我寫了下面的代碼什麼類型的指針
int num = 3;
int *ptr = #
cout << *ptr << " " << ptr << endl;
,得到了下面的輸出。
3 0x7fff5fbff43c
我想知道這是什麼類型的數據。
0x7fff5fbff43c
是
一個。有符號浮點數據
b。帶符號整數數據
c。無符號浮點數據
d。無符號整數數據
e。有符號字符數據
包含數據的我寫了下面的代碼什麼類型的指針
int num = 3;
int *ptr = #
cout << *ptr << " " << ptr << endl;
,得到了下面的輸出。
3 0x7fff5fbff43c
我想知道這是什麼類型的數據。
0x7fff5fbff43c
是
一個。有符號浮點數據
b。帶符號整數數據
c。無符號浮點數據
d。無符號整數數據
e。有符號字符數據
它們都不是這些 - 它是一個指向整數的指針,它與任何描述中包含「數據」一詞的類型不同。
0x7fff5fbff43c
只是一個數字解釋作爲一個無符號整數數字打印出來的base-16。
所以我們可以放心地假設它的選項d? – itsaboutcode
@itsaboutcode儘管將指針指定爲無符號十六進制整數是爲人類讀者直觀顯示它們的最常見方法,但從技術角度講,指針*是無符號整數是不正確的。正確的答案是「這是一個用十六進制符號表示的無符號整數形式的指針」,所以從某種意義上說,「d」是最不正確的選擇(但它仍然是不正確的)。 – dasblinkenlight
數據類型爲int *
。這不是你提到的任何事情。你也許可以將它投射到其中一個;但是,您是否可以做到這一點是未定義的,並且可能因平臺和編譯器而異。
對於顯示,ostream的<<
將轉換爲字符串。該字符串不直接對應於類型; operator<<
調用ostream
函數來傳遞字符數據,可以是單獨的字符,字符串或其組合。
它表示一個內存地址,而不是一個變量。所以它是無類型的。然而,你可以給它一個「間接類型」,這意味着這個指針指向的內存確實有一個類型(所以你可以指向int,字符,結構等)。
閱讀indirection,這是一個有趣的概念。 f。
f。以上都不是 – tmpearce