代码之家  ›  专栏  ›  技术社区  ›  73memedream

为什么我得到这个输出。(这里是新手)

  •  -3
  • 73memedream  · 技术社区  · 7 年前

    X=2,Y=2

    当我最初认为x=1,y=1时。随着C++即将进入学期,我仍然有点困惑,与比我更了解这一点的人进行一点解释,有望将这个概念融入我的脑海。

    int main()
    {
    
        int x = 0;
    
        int& y = x;
    
        y++;
    
        x++;
    
        std::cout << "x = " << x << " y = " << y << std::endl;
    }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   ssovukluk    7 年前

    x和y彼此没有区别。引用意味着x的另一个名字是y。当你叫y时,它叫x,这意味着如果你增加y,它增加x。然后你再次增加x,x变成2。因为y代表x,当你调用y时,它会调用x,你会再次看到2。

        2
  •  0
  •   idler1515    7 年前

    关键是参考符号的含义:

    int& y = x;
    
    1. 它表示您正在为“x”分配别名,因此“y”实际上与“x”共享相同的内存地址(物理上)。

    正在做

    y++;
    

    x++;
    

    1. 同样的想法,因为“x”和“y”都指向完全相同的内存地址,所以打印“x”和“y”将得到相同的值。