菜鸟学习C++之 ~ 引用篇

1.引用是个别名,建立时必须利用另一个数据对象(如一个变量)的名字进行初始化,姨制定该引用所代表的数据对象;系统不会再给引用分配储存空间。引用指向变量的地址

int i; 

int & r =i; // 此时引用r的存储空间的地址就是i的地址

 

2.引用的规则:

  • 创建引用时时,必须立即对其进行初始化,(指针则可以在任何时候被初始化) 

     

 int& r;  //error No initilalization; 

           

       int i; 

       int & r =i;   //correct
  • 一旦一个引用被初始化为一个对象的引用,他就不能被改变为另一个对象的引用(指针可以在任何时候改变为指向为另一个对象),但一个对象可以有多个引用

       

 int i;

         int& r = i;

         int& t = i;   //correct

          

        int i,j;

        int& r =i;

        int& r =j; //errror
  • 不能有NULL引用,必须确保引用是对具体合法对象的引用(及引用适合一块合法的存储空间关联)

3.引用运算符与地址操作符使用相同的符号(及运算符重载),但含义不一样,它放在类型名后面; int&  r =i;

4.引用的一个重要作用就是作为函数的额参数。如果有占用空间大的对象(利于一个大的结构对象或类结构)需要作为函数的参数传递的时候,在C中往往使用指针,因为可以避免整个实参对象数据全部复制给形参,可以提高程序的运行效率,而在C++中既可以使用指针也可以使用引用,引用作为参数的最大好处就是既可以像指针那样工作也,其使用方式又和一般变量相同。也就说引用具有更佳的可读性。

#include<iostream>

using namespace std;

void fun(int& a)

{

        a = 12;

       //cout << a << endl;

}

void fun1(int* p )

{

       *p = 15;

       //cout << a << endl;

}

//

int main()

{

       int i = 3;

       fun(i);

       cout << i << endl; //result 12

       fun1(&i);

       cout << i << endl; //result 15

       system("pause");

       return 0;

}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值