如何快速区分C++左值和右值
C++左值和右值,初学者经常傻傻分不清,可参看“C++ Primer”书中的描述,简单来说:
当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。
一个重要的原则:在需要右值的地方可以用左值来代替,但是不能把右值当成左值(也就是位置)使用。当一个左值被当成右值使用时,实际使用的是它的内容(值)。
还不明白的话,参见MSDN关于“Lvalues and Rvalues”的描述:
Every C++ expression is either an lvalue or an rvalue. An lvalue refers to an object that persists beyond a single expression. You can think of an lvalue as an object that has a name. All variables, including nonmodifiable (const) variables, are lvalues. An rvalue is a temporary value that does not persist beyond the expression that uses it. To better understand the difference between lvalues and rvalues.
如何快速区分C++左值和右值相关推荐
- java中的左值右值_快速了解C/C++的左值和右值
最近在segmentfault上看到一个提问<c++隐式的类类型转换问题>:一时不知怎么回答,查阅相关资料后整理了本文,以供参考学习. 定义 早期的C给出的定义:左值是一个表达式,可能出现 ...
- C++/C++11中左值、左值引用、右值、右值引用的使用
C++的表达式要不然是右值(rvalue),要不然就是左值(lvalue).这两个名词是从C语言继承过来的,原本是为了帮助记忆:左值可以位于赋值语句的左侧,右值则不能. 在C++语言中,二者的区别就没 ...
- c++中的左值与右值
转载自 http://www.cnblogs.com/catch/p/3500678.html 左值 (lvalue)和右值 (rvalue) 是 c/c++ 中一个比较晦涩基础的概念,有的人可能甚至 ...
- c语言 变量的左值和右值,C++雾中风景10:聊聊左值,纯右值与将亡值
C++11的版本在类型系统上下了很大的功夫,添加了诸如auto,decltype,move等新的关键词来简化代码的编写与降低阅读代码的难度.为了更好的理解这些新的语义,笔者确定通过几篇文章来简单窥探一 ...
- 的引用_左值、右值、左值引用、右值引用
[导读]:本文主要详细介绍了左值.右值.左值引用.右值引用以及move.完美转发. 左值和右值 左值(left-values),缩写:lvalues 右值(right-values),缩写:rvalu ...
- C++ 右值引用 | 左值、右值、move、移动语义、引用限定符
文章目录 C++11为什么引入右值? 区分左值引用.右值引用 move 移动语义 移动构造函数 移动赋值运算符 合成的移动操作 小结 引用限定符 规定this是左值or右值 引用限定符与重载 C++1 ...
- c++ 左值 广义左值 右值 纯右值 将亡值
为什么C/C++等少数编程语言要区分左右值? 历史原因: C语言作为一门古老的编程语言,其设计初衷是为了在硬件资源有限的系统上进行高效的编程,因此其语法和语义设计相对较简单.左值和右值的概念最初是由C ...
- 左值引用——右值引用 详解
顾明思议 左值引用 就是对左值的引用 就是给左值取别名 右值引用 就是对右值的引用 就是给右值取别名 当改变别名是 该值也相应的改变 那么 何以区分哪些是左值哪些是右值呢? 左值 右值 在内存中有特定 ...
- C语言左值和右值说明
左值:用于标定特定数据对象的名称或表达式. 这里的数据对象指的是数据存储区域.与C++的面对对象的对象是有区别的. 所以,左值表示引用内存中的地址. 但是有些变量不能修改内存中的值,比如使用了cons ...
最新文章
- python 爬取网页照片!全代码!指定数量,指定目录,爬取过程详细!关于有下载照片过程但是不显示照片的问题的解释
- 熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的?
- PyQt5 笔记(04):主窗口卡死问题
- 为什么要学习python
- ZooKeeper入门(四)实现分布式锁
- LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)
- hbase本地调试环境搭建
- 性能测试:基础(1)
- 2017年高考改革地区:浙江、上海
- 后缀mcp用什么软件打开_如何打开MCP文件?
- 【雷达信号处理基础】第1讲 -- 雷达系统概述
- java itext read a pdf file_java - 使用iText7读取PDF时遇到的问题(使用iText5) - 堆栈内存溢出...
- 解决:视频中有噪声(电流声)怎么办的问题(简单实用高效的视频降噪方法)
- 微信小程序实现微信企业付款到零钱功能的流程
- 用Keil工具搭建S3C2440编译环境
- EUI学习之DataGroup与List
- python爬取网页停止_如何使用Python抓取雪球网页?
- 免费高清壁纸网站推荐
- Python:NBA球员得分数据排行爬虫
- oc 协议 回调 静态成员_深入iOS系统底层之静态库