标题:引用@三篇
只看楼主
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
 问题点数:0 回复次数:1 
引用@三篇
引用分为
1非const引用
2const引用
3,右值引用

引用是给对象起别名
如a的大名叫阿花,小名叫小花,不过都是表示同一个人
感觉引用有点像stringstd::string_view
变量引用在函数传参中容易改变,而且缺点是参数必须是非常量左值,有限制性
c样式的数组会缩减指针,但是引因不会
 fun( int(*p)[4])
会缩减
 fun( int(&p)[4])
不会缩减,可以直接使用size(),但是需要知道数组的大小
引用可以使代码更可读

程序代码:
int&p{ can.do.that}=6;
p=13;

引用必须初始化有效对象,不能为NULL,并且一旦设置就不能更改,引用通常比指针安全,没有解引用null指针的风险,不过功能有限制
  如果给定任务可以用引用和指针解决,不过通常首选引用
指针用在引用不足的情况下{如动态分配内存}




const 引用
const引用感觉和const指针差不多呀
也是分多种情况
1const引用(const 值的引用)常量值
const int vale = 5;
const int &rf = vale;
引用了const值
2初始化对const引用
程序代码:
   int x = 6;
const int &ref1 = x; // x是左值当然错了可以指出来呀
 和指针一样可以从变量处更改,但是不可以引用不同对象 
const int y = 7;
const int &ref2 = y; //y是左值
 
const int &ref3 = 6;
6是右值
3使用引用可以延长使用
4变量引用在函数传参中容易改变,而且缺点是参数必须是非常量左值,有限制性,可以使用常量引用传参不会更改值
void a(const int &pa)
{
    pa = 63; // 不能改变了如果是变量引用就可以改变,常量引用可以传递非const左值参数,const左值参数,文字或表达式的结果:
}
比起指针或基本数据类型的变量const引用可以避免不必要的副本

搜索更多相关主题的帖子: 指针 const int 常量 引用 
2020-03-29 12:07
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
动态分配 也可以引用
只是一般不会这么做
比如
int& r = *new int;
delete &r;

https://zh.
2020-03-29 14:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500693-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.280057 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved