r值和l值之间的差异[重复]

Posted

技术标签:

【中文标题】r值和l值之间的差异[重复]【英文标题】:Difference between r value and l value [duplicate] 【发布时间】:2019-10-06 03:08:36 【问题描述】:

“r-value”是在赋值运算符的右边,“l-value”是在赋值运算符的左边还是更多

【问题讨论】:

【参考方案1】:

l-value 指的是标识对象的内存位置。 l 值可能出现在赋值运算符 (=) 的左侧或右侧。 l 值通常表示为标识符。

引用可修改位置的表达式称为“可修改左值”。可修改的左值不能具有数组类型、不完整类型或具有 const 属性的类型。对于要成为可修改左值的结构和联合,它们不能有任何具有 const 属性的成员。标识符的名称表示存储位置,而变量的值是存储在该位置的值。

如果一个标识符指向一个内存位置并且它的类型是算术、结构、联合或指针,那么它就是一个可修改的左值。例如,如果 ptr 是指向存储区域的指针,则 *ptr 是一个可修改的左值,用于指定 ptr 指向的存储区域。


r-value 指的是存储在内存中某个地址的数据值。 r-value 是一个不能赋值的表达式,这意味着 r-value 可以出现在赋值运算符 (=) 的右侧,但不能出现在左侧。

https://www.geeksforgeeks.org/lvalue-and-rvalue-in-c-language/

【讨论】:

关系运算符中的“==”是否可以有l值或值 @user12153611 == 没有分配,所以你可以在任何一方都有任何价值 好的得到答案 C 标准中的引用可能会有所帮助 C11 Standard - 6.3.2.1 Lvalues, arrays, and function designators 请参阅脚注 (64) 了解历史记录。

以上是关于r值和l值之间的差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在ruby中获取旧值和新值之间的差异

在R中,寻找一种更有效的方法来计算列中的最大值与同一列中的所有值之间的差异[重复]

Django - 覆盖保存方法时检查旧值和新值之间的差异

仅当高于 0 时才计算每列的最小值和最大值之间的差异

Pandas 按行中的值和其他列中的值在行之间进行差异

用于可解释机器学习的 Shapley 值和 SHAP 之间的差异