簡體   English   中英

該程序中“&”和有什么區別

[英]What's the difference between “&” in this program

以下是C ++程序的一部分:

Circle circle1, &circle2 = circle1, *p = &circle2;

我不知道是什么在兩者之間的區別&在那兒? 非常感謝。

第一(使用& )的聲明一個圓參考,后者是用於獲得的存儲器地址的地址的操作者circle2

Circle circle1, &circle2 = circle1, *p = &circle2;

等效於:

Circle circle1;
Circle &circle2 = circle1;  // & is used to declare a reference variable
Circle *p = &circle2;       // & is used to take the address of circle2

它們有兩個非常不同的含義。 如果您拆分條款,則更容易看到。

Circle circle1; // A Circle object

Circle& circle2 = circle1; // A Circle reference

Circle* p = &circle2; // A Circle pointer takes the address of a Circle object

在第二行中,您聲明對Circle引用

在第三行中,您使用的是Circle地址

因此,第二行使用&聲明引用類型

第三行使用&作為運算符的地址

暫無
暫無

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

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