[英]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
的內容是可變的。
&a
是a
的地址(其中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.