溫馨提示×

c++ sizeof指針能否獲取指針指向類型大小

c++
小樊
81
2024-09-24 22:54:15
欄目: 編程語言

在 C++ 中,sizeof 操作符返回的是括號內(nèi)數(shù)據(jù)類型或?qū)ο笏加玫淖止?jié)數(shù)。對于指針來說,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,然后創(chuàng)建了一個指向 int 類型的指針 p。接下來,我們使用 *p 對指針進行解引用,以便獲取它所指向的對象(即 a)。最后,我們使用 sizeof(*p) 來獲取解引用后的對象(即 a)的大小。

0