码迷,mamicode.com
首页 >  
搜索关键字:左值    ( 392个结果
移动语义、移动构造函数和右值引用
C++引用现在分为左值引用(能取得其地址)和右值引用(不能取得其地址)。其实很好理解,左值引用中的左值一般指的是出现在等号左边的值(带名称的变量,带*号的指针等一类的数据),程序能对这样的左值进行引用获得其地址;右值引用中的右值一般指的就是出现在等号右边的值(右值引用:常量、表达式、函数非左值引用的...
分类:移动开发   时间:2014-09-24 15:50:57    阅读次数:258
9.17 数据类型 常量 补码 阶码
左值和右值:左值必须要有内存实体,能放在赋值号左边的值寄存器的数据一般都是右值,能放在赋值号右边的值int num = 1;num+1 的值不在内存,在寄存器里(CPU里)。绝对不能取寄存器地址。#include int main(){ int num = 3; int data = 0; _asm...
分类:其他好文   时间:2014-09-19 21:04:06    阅读次数:441
c++中的左值与右值
++(a++) a++相当于int a;{int temp=a;a++;teturn temp;}所以我们可以将++(a++)看成++temp;而temp显然是一个右值,所以不能用啊~~ L-value中的L指的是Location,表示可寻址。The "l" in lvalue can be tho...
分类:编程语言   时间:2014-09-14 23:35:27    阅读次数:227
a++和++a左值问题
a++和++a,前缀和后缀哪一个可以作为左值,这个问题让我忙活了很久,终于有了些许突破。 a++和++a在做左值的时候有不同,那么左值它首先必须是有特定地址的才能作为左值,否则赋值就没有具体对象。再看看a++和++a。a++的意思是先复制一份临时数据出来参与周边环境的运算,再自加变量a,可见a++用来参与运算的是一份复制出来的临时数据,这个数据是临时存在而没有固定地址的,不是一个真正的变量。++...
分类:其他好文   时间:2014-09-13 18:49:15    阅读次数:198
const 限定符
1.定义const对象 const限定符把一个对象转换成一个常量 const int Bufsize = 512; 定义Bufsize 为常量并初始化为512。变量Bufsize仍然是一个左值,但是不可修改。 Bufsize = 0; // error2.const对象默认为文件...
分类:其他好文   时间:2014-09-09 10:56:08    阅读次数:262
转发:某些函数需要将其一个或多个实参连同类型不变地转发给其他函数
16.47 编写你自己版本的翻转函数,通过调用接受左值和右值引用参数的函数来测试它。#include#include#includeusing namespace std;template int compare(const T &a ,const T &b){ if(aauto sum(T ...
分类:其他好文   时间:2014-09-01 22:21:03    阅读次数:206
【C】 04 - 表达式和语句
程序的生命力体现在它千变万化的行为,而再复杂的系统都是由最基本的语句组成的。C语句形式简单自由,但功能强大。从规范的角度学习C语法,一切显得简单而透彻,无需困扰于各种奇怪的语法。1. 表达式(expression)1.1 简单表达式 一个表达式最重要的属性是它的值,可以定位其对象的值叫左值(l...
分类:其他好文   时间:2014-08-29 17:47:58    阅读次数:282
C++primer学习笔记《4》
每一个表达式都有一个结果,字面值常量也是表达式,其结果就是值本身。除了特殊用法外表达式的结果是右值。是左值的情况也有,比如++i;这个表达式就是一个左值;还有逗号运算符的结果是表达式最右侧操作符德值,如果最右是一个左值的话,那整个逗号表达式就是左值。   表达式涉及到操作符和操作数,操作符有优先级规则,有结合性,还有操作数的求值顺序。就操作数的求值顺序而言,比如f1() * f2();两个函数...
分类:编程语言   时间:2014-08-23 17:46:11    阅读次数:229
C++中的左值右值
对于 C++ 中的左值和右值,我们通常的说法是:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置),这句话来自于 《C++ Primer 第五版》 第 121 页,那么,对于这句话,该作何理解呢?下面我想来谈谈我的看法: ISO C++03规定表达式必须是左值或右值之一,而在ISO C++11中,左值性被正式地扩充为更复杂的值类...
分类:编程语言   时间:2014-08-09 15:57:28    阅读次数:255
赋值运算符
赋值运算符的左侧运算对象必须是一个可修改的左值,如果给定int i=0,j=0,k=0; //初始化而非赋值const int ci=i; //初始化而非赋值则下面的赋值语句都是非法的:1024=k ; //错误:字面值是右值i+j=k; //错误:算术表达式是右值ci=k;//错误:ci是常量.....
分类:其他好文   时间:2014-08-04 20:48:27    阅读次数:200
392条   上一页 1 ... 35 36 37 38 39 40 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!