2011-07-05 54 views
0

在下面的代碼中,「a」和「& a」包含什麼?C++類的實例

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

回答

2

a是指向堆中分配的對象列表的指針。 基本上a包含一個地址(指針存儲一個地址,如果你知道的話)。 和&a不包含任何東西。你正在做的事實際上是取指針的地址並打印它。

5

a是指向list類型的對象。

&a是指針a的地址。

1

a包含一個指向對象的指針,你new ED和&a不包含任何東西,因爲它不是一個對象(左值,在C++的說法),只是一種表達。

1

a是指向類型的列表的對象上的FreeStore(堆)動態分配
&a是指針的地址。

2

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

&a是地址a(其中a駐留在內存佈局中)。 &a不可更改。

2

&寫入一個變量將爲您提供此變量的地址。這實質上與指向內存部分的指針相同,這個變量存儲在內存中。

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

因此,在您的示例中,a包含作爲數值的list的內存地址。 &a也是一個數字值,它包含內存地址,其中存儲指針a