【C语言】左值和右值
综述
最简单的解释:在赋值运算符 “=” 左边的就是左值,在赋值运算符 “=” 后边的就是右值。但这听起来似乎很不靠谱,还是不能很好地理解。下面更加详细的介绍。
概念
左值就是一个可被存储的单元
右值就是一个可被读取的数据。
左值必须是一个被明确了的内存存储单元,可以用来被赋值;
右值必须是一个能被读出来的确确实实的值,这个值可以是数据,可以是指针,可以是结构,反正只要能被读出来的,都可以定义为右值。
解释实例
如 x = 2;
这里x为整形变量,这里作为左值,代表的是一块内存单元,表示的是地址。
这里2做右值, 2是一个常量,没有任何疑问。
但如果 x = y;
现在看变量做右值情况,y做右值,这里呢就不在表示地址,而是代表该内存单元上的值!然后赋给x。