以下是C ++程序的一部分:
Circle circle1, &circle2 = circle1, *p = &circle2;
我想知道两个&
之间有什么区别?非常感谢。
答案 0 :(得分:6)
第一个(使用&
)声明一个Circle引用,后一个是 address-of 运算符,用于获取circle2
的内存地址。
答案 1 :(得分:4)
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
答案 2 :(得分:1)
他们有两个非常不同的含义。如果你拆分条款,就会更容易看到。
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
。
所以第二行是使用&
来声明 引用类型 。
第三行使用&
作为 运算符的 地址。