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)

相关推荐

  • 如何给SQL做个优化

    技术如何给SQL做个优化本篇内容主要讲解“如何给SQL做个优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何给SQL做个优化”吧!SQL 语句执行较慢的 3 个原因没有建

    攻略 2021年10月22日
  • 算法逻辑中的因果关系(持续更新)

    技术算法逻辑中的因果关系(持续更新) 算法逻辑中的因果关系(持续更新)总结算法中可以前后处理的方法实例
    世间有好坏,算法逻辑也有前后‘因果’,我们可以从数组中看出有第一项和最后一项。
    以LQ26删除有序

    礼包 2021年12月22日
  • CSS中利用伪类、伪元素和相邻元素选择器的技巧有哪些

    技术CSS中利用伪类、伪元素和相邻元素选择器的技巧有哪些CSS中利用伪类、伪元素和相邻元素选择器的技巧有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望

    攻略 2021年11月16日
  • Hadoop HDFS分布式文件系统怎么理解

    技术Hadoop HDFS分布式文件系统怎么理解本篇内容介绍了“Hadoop HDFS分布式文件系统怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年12月9日
  • ln2求导,证明ln2(2^4) + ln3

    技术ln2求导,证明ln2(2^4) + ln3我还是将原题的前因后果给你写一下吧,原理的第二问证明了ln(x)/x^2   ln2求导。。+lnn/(n^4)全部这类题一般是在高考题目中是最后一道大题的最后一问中出现,

    2021年10月22日
  • 微服务设计的方法是什么

    技术微服务设计的方法是什么这篇文章主要讲解了“微服务设计的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务设计的方法是什么”吧!一、微服务架构理论1.六边形

    攻略 2021年11月16日