码迷,mamicode.com
首页 > 其他好文 > 详细

引用详解

时间:2019-02-02 10:34:42      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:必须   专业   大量   注意   color   直接   err   地址   ++   

专业的C++代码会用到大量的引用,在C++中引用是变量的别名,所有对引用的修改都会改变被引用变量的值,可以将引用当作隐私指针,这个指针没有取变量地址和解除引用的麻烦(也可以将引用当作是原始变量的别名)。

1.引用变量

引用变量在创建的时候必须初始化

int a = 0;
int &b = a;    //work
std::cout << "b:" << b << std::endl; 
    
//int &c = 0;   //error
const int &c = 0;  //work

值得注意的是:不能对创建引用直接“值传递”,除非这是一个const引用;

引用总是引用当初初始化的那个变量,一旦创建就无法修改变量,但是可以修改变量的值,比如:

int x = 1,y = 2;
    int &xRef = x,&yRef = y;
    std::cout << "X : " << xRef << std::endl;
    std::cout << "y : " << yRef << std::endl;
    
    //X : 1
    //y : 2
    
    xRef = &y;        //error    

为什么错误呢?

因为xRef是int&,而y得地址是一个指针。所以两者而无法赋值。

如果将一个引用赋值给另一个引用呢?

    xRef = yRef;            
    
    std::cout << "X : " << xRef << std::endl;
    std::cout << "y : " << yRef << std::endl;

结果是:

X : 2
y : 2

看出这里只是将y的值传递给xRef(也就是x),但是XRef还是x得引用。

 

引用详解

标签:必须   专业   大量   注意   color   直接   err   地址   ++   

原文地址:https://www.cnblogs.com/boost/p/10347667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!