第4章 令人震惊的事实:数组和指针并不相同
x=y;
在这个上下文环境里,符号x的含义是x所代表的地址。这被称为左值。左值在编译时可知,左值表示存储结构的地方。
在这个上下文环境里,符号y的含义是y所代表的地址的内容。这被称为右值。右值直到运行时才知。如无特别说明,右值表示“y的内容”。
C语言引入了“可修改的左值”这个术语。它表示左值允许出现在赋值语句的左边。这个奇怪的术语是为与数组名区分,数组名也用于确定对象在内存中的位置,也是左值,但它不能作为赋值的对象。因此,数组名是个左值但不是可修改的左值。标准规定赋值符必须用可修改的左值作为它左边一侧的操作数。用通俗的话说,只能给可以修改的东西赋值。