C++中引用变量

一般情况下的引用变量是我们现有变量的一个拷贝,相当于我们可以利用一个新的变量名称来代替原变量的使用,下面是一个小例子:

#include <iostream>
using namespace std;
int main()
{
    int rats=101;
    int &rodents=rats;     //这里定义了引用变量rodents
    cout<<"rats="<<rats;
    cout<<",rodents="<<rodents<<endl;
    rodents++;
    cout<<"rats="<<rats;
    cout<<",rodents="<<rodents<<endl;
cout<<"rats的地址是"<<&rats<<endl;
cout<<"rodents的地址是"<<&rodents<<endl;
}

输出结果:

 rats=101,rodents=101
rats=102,rodents=102
rats的地址是0x6ffe34
rodents的地址是0x6ffe34

2.如果我们将第三个变量赋值给rodents变量,会有什么不同呢?
程序如下:

#include <iostream>
using namespace std;
int main()
{
    int rats=101;
    int &rodents=rats;//这里定义了引用变量rodents
    int c=41;//这里我们定义的是第三者 
    cout<<"rats="<<rats;
    cout<<",rodents="<<rodents<<endl;
    rodents++;
    cout<<"rats="<<rats;
    cout<<",rodents="<<rodents<<endl;
    cout<<"rats的地址是"<<&rats<<endl;
    cout<<"rodents的地址是"<<&rodents<<endl;
    //下面进入第三者,一个很神奇的第三者
    cout<<"下面我们进入第三者"<<endl;
    rodents=c;
    cout<< "rats="<<rats<<endl;
    cout<<"rodents="<<rodents<<endl;
    cout<<"rats的地址是"<<&rats<<endl;
    cout<<"rodents的地址是"<<&rodents<<endl;
    cout<<"c的地址是"<<&c<<endl;
}  

结果如下:

rats=101,rodents=101
rats=102,rodents=102
rats的地址是0x6ffe34
rodents的地址是0x6ffe34
下面我们进入第三者
rats=41
rodents=41
rats的地址是0x6ffe34
rodents的地址是0x6ffe34
c的地址是0x6ffe30

这个时候我们可以看到第三者的地址和前两者的地址是不一样的,但是值却是一样的,因为这种情况就相当于将第三者直接复制给了第一者,其间的引用并没有对它产生任何在地址上的影响,这也十分容易理解。

猜你喜欢

转载自blog.csdn.net/weixin_43778462/article/details/89631115
今日推荐