通过引用符号传递

时间:2019-03-04 15:14:53

标签: c++ pass-by-reference

我的问题确实很简单,我相信可以理解。 我制作了这个简单的代码片段,以说明在通过引用传递值时发生的冲突。

int main() {
 int a = 1;
 int &b = a;
}

我知道这是正确的方法,但是采用b的地址并使其等于a的值的意义如何?从逻辑上讲,它应该是:int &b = &a;

2 个答案:

答案 0 :(得分:6)

许多运算符都是上下文相关的。根据上下文,&“运算符”可能意味着三件事:

  1. 可以在定义引用时使用

    int& r = a;  // The variable r is a reference of the variable a
    
  2. 它可以用来获取指向某物的指针

    int* p = &a;  // Here & is the address-of operator which returns a pointer
                  // Here it makes p point to the variable a
    
  3. 它可能是bitwise AND运算符

    0x53 & 0x0f    // Here's a bitwise AND operation, the result is 0x03
    

答案 1 :(得分:4)

您误会了语法。这是不愉快的,但是&既是运算符的地址,又是的令牌,表示“引用”。

int &b = a;

这声明变量b的类型为int&(引用int)并初始化为a。没有任何地址。