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)

相关推荐

  • hbase 单机+伪分布环境搭建学习-1

    技术hbase 单机+伪分布环境搭建学习-1 hbase 单机+伪分布环境搭建学习-11、单机模式:
    (1)编辑hbase-env.shuser@EBJ1023.local:/usr/local/flu

    礼包 2021年12月22日
  • 阿里云hadoopspark集群(apache spark数据分析教程)

    技术Apache Spark的Lambda架构示例分析本篇内容介绍了“Apache Spark的Lambda架构示例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处

    攻略 2021年12月14日
  • golang解析json(golangjson配置)

    技术如何用golang源码分析simplejson如何用golang源码分析simplejson,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景:1,go

    攻略 2021年12月13日
  • react开发app小程序(react开发小程序框架有哪些)

    技术React怎么构建小程序这篇文章主要介绍“React怎么构建小程序”,在日常操作中,相信很多人在React怎么构建小程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”React怎么构建

    攻略 2021年12月23日
  • springsession和普通session区别(springsession配置sessionname)

    技术spring-session自定义序列化方法是什么本篇内容介绍了“spring-session自定义序列化方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处

    攻略 2021年12月23日
  • jquery length是什么意思

    技术jquery length是什么意思这篇文章主要讲解了“jquery length是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery length是

    攻略 2021年11月15日