首页 > 其他分享 >引用

引用

时间:2024-11-09 17:19:54浏览次数:2  
标签:常量 int 局部变量 引用 test 指针

image
引用就是给变量起另外的名字,区别就是在别名前加&的符号。实质上指向同一个内存。
image
引用的两个注意事项:
1.引用必须初始化。
2.引用初始化后不可以更改。
image
引用做函数参数就太熟悉了,引用作函数返回值倒是没见过。
1.不能返回局部变量作为引用,任何和局部变量地址相关的操作都不要做就完事了。
2.若引用作函数返回值,则函数调用可以作为左值。具体可看以下代码:


int& test(){
	static int a = 10;
	return a;
}

int main(){
	int& bie = test();
	cout << bie << endl;
	test() = 100;
	cout << bie << endl;

	return 0;
}

image
引用的本质是一个常量指针,也就是说每次引用都是在开辟了一个常量指针,这也对应了常量指针无法变更指向对象的特性。常量指针的生存周期还是看所处的位置。

标签:常量,int,局部变量,引用,test,指针
From: https://www.cnblogs.com/gcfer/p/18536948

相关文章

  • java 中都有哪些引用类型
    强引用(StrongReference):Java中默认声明的就是强引用,例如:​​Objectobj=newObject();​​只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系,可以显示的将强引用赋值为null......
  • java 中都有哪些引用类型
    强引用(StrongReference):Java中默认声明的就是强引用,例如:​​Objectobj=newObject();​​只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系,可以显示的将强引用赋值为null......
  • C++ 模板实参推断和引用折叠
    两个例外规则假定i是一个int对象,我们可能认为像£3(i)这样的调用是不合法的。毕竟,i是一个左值,而通常我们不能将一个右值引用绑定到一个左值上。但是,C++语言在正常绑定规则之外定义了两个例外规则,允许这种绑定。这两个例外规则是move这种标准库设施正确工作的基础。第一个例......
  • web页面引用相关文件或者页面方式汇总
    在网页里包含另一个网页(或文件)方法如下:一、要包含的文件是css文件的话,用<linktype=text/cssrel=stylesheethref=1.css>二、要包含的文件是js文件的话,用<scriptlanguage=javascriptsrc=a.js></script>三、要包含的文件是html文件的话,用<!--#includefile="htmlpage.htm"-......
  • 使用 ref 引用值
    当你希望组件“记住”某些信息,但又不想让这些信息触发新的渲染时,你可以使用ref。constref=useRef(0);useRef返回一个这样的对象:{current:0//你向useRef传入的值}与state一样,ref在重新渲染之间由React保留。但是,设置state会重新渲染组件,而更改ref......
  • 运动旋量引用于正向运动
     假设{4}的原点,是最后的端点,那么先让机器人复位,回到最初始的位姿: 回顾:https://www.cnblogs.com/pylblog/p/18085153  只需要知道{ω,q,θ},就可以获得一个转换:在b处的位姿,转换到c处的位姿,而且位姿都是相对于统一固定坐标系s的那么,可以:第一步:1. 容易通过机械设计结......
  • C++循环引用指的是什么,在使用过程当中需要注意什么问题
    C++中的循环引用是指两个或多个对象相互持有对方的引用,导致这些对象无法被自动释放,从而造成内存泄漏。循环引用主要发生在使用智能指针(如 std::shared_ptr)管理对象生命周期时。以下是循环引用的具体解释及其使用中需要注意的问题:循环引用的形成当两个对象A和B互相持......
  • .Net Framework项目引用.NetStandard标准库出现版本冲突解决办法
    这几天在边学边用CommunityToolKit.MVVM,AutoCAD开发项目,在尝试验证输入参数时,程序加载遇到了问题:System.IO.FileNotFoundException:未能加载文件或程序集"System.ComponentModel.Annotations,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"或它的某一......
  • 对象优化及右值引用优化(一)
    对象优化及右值引用优化对象的函数调用时机classTest{public:Test(intval=0):val_(val){cout<<"Test::Test"<<endl;}~Test(){cout<<"Test::~Test"<<endl;}Test(constTest&t......
  • VS引用本地的NuGet包
    Step1.打包先选择项目/类库,进行打包。在输出中,找到打包的目录和文件。 Step2.本地创建一个文件夹用于放打包文件。Step3.添加包源打开VS-->工具 --> NuGet包管理器 --> 管理解决方案的NuGet程序包选择右上方:程序包源右侧的齿轮按钮在程序包源中,新增一条。名称:自......