在下面的代碼中,「a」和「& a」包含什麼?C++類的實例
class list{
};
int main(){
list *a= new list();
cout<<"\n Values:a="<<a<<" & &a="<<&a<<endl;
return 0;
}
在下面的代碼中,「a」和「& a」包含什麼?C++類的實例
class list{
};
int main(){
list *a= new list();
cout<<"\n Values:a="<<a<<" & &a="<<&a<<endl;
return 0;
}
a
是指向堆中分配的對象列表的指針。 基本上a
包含一個地址(指針存儲一個地址,如果你知道的話)。 和&a
不包含任何東西。你正在做的事實際上是取指針的地址並打印它。
a
是指向list
類型的對象。
&a
是指針a
的地址。
a
包含一個指向對象的指針,你new
ED和&a
不包含任何東西,因爲它不是一個對象(左值,在C++的說法),只是一種表達。
a
是指向類型的列表的對象上的FreeStore(堆)動態分配
&a
是指針的地址。
a
是指向list
對象(通常在自由存儲中分配)的指針。內容a
是多變的。
&a
是地址a
(其中a
駐留在內存佈局中)。 &a
不可更改。
將&
寫入一個變量將爲您提供此變量的地址。這實質上與指向內存部分的指針相同,這個變量存儲在內存中。
由於a
已經是一個指針,所以&a
是一個指向指針的指針。
因此,在您的示例中,a
包含作爲數值的list
的內存地址。 &a
也是一個數字值,它包含內存地址,其中存儲指針a
。