c++基础 ——引用

引用

*定义:为对象另起一个名字。

*注意事项:

a.引用一定要将其初始化成某个变量

b.初始化后不会在引用别的变量

c.引用 只能引用变量,不能引用常量和表达式

*应用实例

1)交换数值

void swap(int& a, int& b)
{
    int tmp;
    tmp = a; a = b; b = tmp;
}
int n1, n2;
swap(n1, n2);

其中int &a引用n1   int &b引用n2  (倘若不加&,则无论怎麽改变交换a . b也无法影响到n1 . n2的原本状态)

2.引用作为函数返回值

int n = 4;
int & SetValue() {return n;}
int main()
{
     SetValue()  = 40; //相当于 int n = 40;
     cout<<n;
     return 0;
}//输出:40

最好不要作为局部变量的引用(类似不要返回局部变量的地址)
因为会在函数执行完毕被释放掉

*const关键字

  1. 定义引用时,前面加const,即为“常引用” (引用的内容可以改变,只是不能通过常引用去修改其引用内容)

int n;
const int & r = n;

r的类型是const int &

   2.常引用和非常引用的转换
  const T &和T &不是同类型!!!

const T 类型的常变量和const T &类型的引用不能用来初始化T &类型的引用;

T &类型(及其常变量)的引用可初始化const T &类型(及其常变量)的引用。

    例题:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rO85aKo55S76ZyT6KOzNjc2,size_19,color_FFFFFF,t_70,g_se,x_16

 答案:D

分析:C项错因是r1是指向const int,r2是指向int的 ,两数类型不符合。r1指向的数没变,可r2指向的数可以改变,而r2指向r1,相当于一个可变化的数指向一个不可变的数,那么r1也就改变了。r1是常引用,它不可改变自己的值自相矛盾。

 3.定义常量指针

1)不可通过常量指针修改其指向内容

2)不能把常量指针赋值给非常量指针,反过来可以。(除非强制转换

方法:

int n,m;
const int *p = & n;
* p = 5;//编译出错
p = & m;//ok 常量指针的指向可以变化

强制转换方法:

const * p1;
int * p2;
p1 = p2;//ok
p2 = (int *)p1;//ok 强制转换

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值