天天看点

C语言左值与右值的区别(C语言深度剖析读书笔记一)

很多书籍中都提到了左值和右值的概念,但是对其解释却让人费解,下面我来简单解释一下。

简单地说,左值就是在赋值符号“=”左边的变量,右值自然是赋值符号右边的值了。例如:m=n;m是左值,n是右值,这两者在C语言中有什么要求或者说必须满足什么条件呢?

右值:如上面的例子,n是右值,也就是说n代表的地址存储的内容,具体的内容由具体的程序决定。

左值:再如上例,m是左值,即m代表这个地址,这个地址具体在哪,也由编译器决定。

C语言中的左值必须是“可修改的左值”,即左值代表的地址上的内容一定是可以修改的,对于只读变量,我们是无法进行赋值运算的。

继续阅读