"&"之间的区别是什么?在这个计划中

时间:2015-05-18 03:42:04

标签: c++ operator-keyword

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

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

我想知道两个&之间有什么区别?非常感谢。

3 个答案:

答案 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

所以第二行是使用&来声明 引用类型

第三行使用&作为 运算符的 地址。