簡體   English   中英

c++ class 的實例

[英]Instance of c++ class

在下面的代碼中,“a”和“&a”包含什么?

class list{
};
int main(){
    list *a= new list();
    cout<<"\n Values:a="<<a<<" & &a="<<&a<<endl;
    return 0;
}

a是指向list類型的 object 的指針。

&a是指針a的地址。

a是指向list object 的指針(通常在自由存儲中分配)。 a的內容是可變的。

&aa的地址(其中a位於 memory 布局中)。 &a是不可更改的。

& left 寫入變量可以得到該變量的地址。 這與指向memory的葯水的指針本質上是一樣的,這個變量存儲在里面。

由於a已經是一個指針, &a是一個指向指針的指針。

因此,在您的示例中, a包含list的 memory 地址作為數值。 &a也是一個數值,它包含了 memory 地址,指針a存放的地方。

a是指向在堆上分配的 object 列表的指針。 基本上a包含一個地址(如果您知道,指針存儲一個地址)。 並且&a不包含任何內容。您正在做的實際上是獲取該指針的地址並打印它。

a包含指向您new編輯的 object 的指針,而&a不包含任何內容,因為它不是 object (左值,在 C++ 用語中),只是一個表達式。

a是指向 object 類型列表的指針,動態分配在 freestore(heap) 上
&a是指針的地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM