c++面向对象程序设计(c++用什么软件编程)

技术C++右值如何引用本篇内容介绍了“C++右值如何引用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.左值和右值在我

本文介绍了“如何引用正确的C值”的相关知识。很多人在实际案例的操作中会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

1.左值和右值

在我们之前的文章中,我们介绍了所有左值引用。C 11在左值引用的基础上引入了右值引用。因为是新功能,使用频率不是很高,所以有一定的学习成本。

先抛开引用的概念,先看看什么是左值右值。其实很简单。左边的值可以取地址,地址位于等号的左边。右边的值不能得到地址,地址位于等号的右边。

inta=4;例如,我们定义一个int类型的变量A,并使其值等于4。其中A在等号的左边,我们可以找到A的地址,而4在等号的右边,我们没有办法寻址4。所以a是左值,4是右值。

再比如:

int test(){ 0

返回4;

}

inta=test();同样,A在等号的左边,所以有一种方法可以得到地址作为左值。而test()是临时值,没有办法得到地址。这是一个正确的价值观。

所以这里很清楚,有地址的变量是左值,而常数值和没有地址的临时变量是右值。

00-1010了解左值和右值的概念,再看左值引用和右值引用。顾名思义,左值引用是一个可以指向左值但不能指向右值的引用。

inta=4;

int b=a;//法律

intc=4;//非法的但是左值引用也有例外,就是使用const修饰的左值引用是可以指向右值的:

constitint b=4;因为const修饰的引用不能再更改了,所以可以引用正确的值。如果您阅读STL代码,您会发现一些函数的参数是常量,以便与参数是常量的情况兼容。例如,矢量中的push_back:

void push _ back(const value _ type val);右值引用的概念类似于左值引用,即可以指向右值但不能指向左值的引用。为了将其与左值引用区分开来,使用了两个字符。老实说,这个符号令人费解,因为它与和的意思相同。

inta=4;

int b=4;//法律

intc=a;//非法上面第三行代码非法的原因是C是右值引用,不能指向左值。如果我们必须指出呢?没有出路。您可以使用std:move函数,该函数可以将左值转换为右值。

使用命名空间TD;

inta=4;

intc=move(a);move函数听起来像移动,但实际上它并不移动变量,而是执行类似于类型转换的操作。

我不知道你看到这里是不是觉得自己很大,但这还没有结束,这很重要。也就是说,左值引用和右值引用本身都是左值引用:

void test(int tmp){ 0

tmp=2333

}

使用命名空间TD;

inta=4;

int b=a;

intc=4;

测试(a);//非法

测试(b);//非法

测试(c);//非法

测试(移动(a));//法律

测试(移动(b));//法律

测试(移动(c));//法律C中的引用是一个非常大的范畴,除了左值引用和右值引用之外,还有很多细节。例如通用引用、引用折叠、完美转发等.

这里介绍一下“如何引用C的正确值”的内容。感谢阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/148699.html

(0)

相关推荐

  • 改脸型,大家对改脸型的方法了解多少

    技术改脸型,大家对改脸型的方法了解多少东方人向来崇尚瓜子小脸改脸型,所以瘦脸风大行其道。脸部宽大的原因包括脂肪因素、肌肉因素和骨骼因素。因此,针对上述原因采取不同的瘦脸方法,才能有更好的效果。下面就为大家科普一下常见的改

    生活 2021年10月21日
  • 怎样进行Elasticsearch 7.7 的异步搜索原理解析

    技术怎样进行Elasticsearch 7.7 的异步搜索原理解析怎样进行Elasticsearch 7.7 的异步搜索原理解析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望

    攻略 2021年12月3日
  • nh4电子式,电子式要怎么写,和离子式的区别?

    技术nh4电子式,电子式要怎么写,和离子式的区别?电子式一般针对单个的分子或原子出题,让你写出他们的电子式,即各自外部电子的分布或排布情况nh4电子式。离子式一般用在写离子方程式上,离子即物质溶于水后所形成的粒子,比如说

    生活 2021年10月20日
  • c语言中主要有几种循环语句(c语言循环语句基础知识)

    技术怎么深入了解c语言的循环语句怎么深入了解c语言的循环语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C语言循环语句大多数人都希望自己是体格强健,天

    攻略 2021年12月14日
  • Flex for eclipse插件如何安装

    技术Flex for eclipse插件如何安装这篇文章主要介绍Flex for eclipse插件如何安装,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex for eclipse插件的安装

    攻略 2021年11月26日
  • 重排序和happens-before有什么关系

    技术重排序和happens-before有什么关系本篇内容介绍了“重排序和happens-before有什么关系”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情

    攻略 2021年11月2日