C语言中左值和右值有何详细区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计857个文字,预计阅读时间需要4分钟。
左值是用于指明一个对象的表达式。最简单的左值就是变量名称。左值(lvalue)之所以称为左值(L,代表left),是因为一个左值代表一个对象,它可以出现在赋值运算符的左侧。因为一个左值表示一个对象,所以它可以在赋值运算符中出现。
其他表达式(那些表示一个值但不指明一个对象的),被类似地称为右值(rvalue)。右值是可以出现在赋值运算符右边而不是左边的表达式。例如,常量和算术表达式。
从一个左值中必定可以解析出对应对象的地址,除非该对象是位字段(bit-field)或者被声明为寄存器存储类。生成左值的运算符包括下标运算符(subscript operator)[]和间接运算符(indirection operator)*,如下表所示(如果 array 已被声明为数组,而 ptr 被声明为指针变量)。
本文共计857个文字,预计阅读时间需要4分钟。
左值是用于指明一个对象的表达式。最简单的左值就是变量名称。左值(lvalue)之所以称为左值(L,代表left),是因为一个左值代表一个对象,它可以出现在赋值运算符的左侧。因为一个左值表示一个对象,所以它可以在赋值运算符中出现。
其他表达式(那些表示一个值但不指明一个对象的),被类似地称为右值(rvalue)。右值是可以出现在赋值运算符右边而不是左边的表达式。例如,常量和算术表达式。
从一个左值中必定可以解析出对应对象的地址,除非该对象是位字段(bit-field)或者被声明为寄存器存储类。生成左值的运算符包括下标运算符(subscript operator)[]和间接运算符(indirection operator)*,如下表所示(如果 array 已被声明为数组,而 ptr 被声明为指针变量)。

