#include<iostream>usingnamespace std;intmain1(void){//左值:可以出现在赋值运算符左边//右值:所谓的数据/*int a = 10;
int b = 20;*///int c = a + b;//int a + b = 20;//左值:往往代表的一个存储空间//右值:由于这个a+b涉及到了计算机空间,仅仅能够在这个表达式//运行过程中存在/*__asm{
mov eax,a
mov ebx,b
add eax,ebx
mov c,eax
}*///右值是一个和运算过程相匹配的临时对象,这个临时对象在于其所对应的语句执行完毕之后,就销毁了//所以,我们无法从语法层面上直接访问。//左值是一个有名字,有固定地址的表达式//右值:仅仅匿名,没有固定地址的对象int a =10;int& b = a;constint&c = a;//==》为左值a命名一个常量的别名cint x =1000, y =100;constint& i = x + y;//==>为右值x+y命名一个常量的别名iint tt = x + y;
tt++;//i++;int&& right = x + y;
right++;printf("%d", right);//通过所谓&&,形成的语法叫做右值引用//使得右值变成了一个与左值完全相同的持久对象system("pause");return0;}