在 C++ 中,sizeof
操作符返回的是括號內數據類型或對象所占用的字節數。對于指針來說,sizeof
返回的是指針本身(即存儲地址的變量)的大小,而不是指針所指向類型的大小。
要獲取指針指向類型的大小,你需要使用指針,并對該指針進行解引用。但是,請注意,你不能直接對原始指針使用 sizeof
來獲取它所指向類型的大小,因為 sizeof
不適用于指針本身。你需要先解引用指針,然后對解引用后的對象使用 sizeof
。
以下是一個示例:
#include <iostream>
int main() {
int a = 10;
int* p = &a; // p 是一個指向 int 類型的指針
// 獲取指針指向的類型的大小(在這里是 int 類型)
std::cout << "Size of int: " << sizeof(*p) << " byte(s)" << std::endl;
return 0;
}
在這個示例中,我們首先定義了一個 int
類型的變量 a
,然后創建了一個指向 int
類型的指針 p
。接下來,我們使用 *p
對指針進行解引用,以便獲取它所指向的對象(即 a
)。最后,我們使用 sizeof(*p)
來獲取解引用后的對象(即 a
)的大小。