常引用

普通的引用:

1. int a=10;

    int &b=a;//b就是a,a就是b,b相当于a的别名,可以通过修改b的值来改变a的值

    b=20;

    cout<<"a="<<a<<endl;//输出的结果是20,b的值被改变,a的值相应地也被改变

 

2.int &a=10;//非法!引用的本质是给内存起别名。而10是一个字面量,是不放在内存里面的,因而没有地址,即:(&10)是错的,压根不存在。                                                                                                                                                                                          

 

常引用:

1. int x=10;

    const int &y=x;//y是x的常引用,y本身是const int类型,其值不能被修改

    y=20;//非法!y的值不允许修改!

    x=30;//合法,x的值可以改变

    cout<<"x="<<x<<endl;

 

2.const int &a=10 //合法,C++编译器自己分配了一块int的内存空间,然后用a指向这块内存。

//常引用通常被用来传参,使得参数具有只读属性而不能被修改

例如:

struct Teacher

{

    int age;

    char name[64];

};

 

void fun(const Teacher &temp)

{

    t.age=30;//非法!常引用的值不能被修改

    cout<<"age:"<<temp.age<<endl;

    cout<<"name:"<<temp.name<<endl;

}

 

void main()

{

    Teacher t;

     t.age=25;

     strcpy(t.name,"Li");

    fun(t);

}

 

转载于:https://www.cnblogs.com/jswu-ustc/p/8303529.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值