问题标签 [lvalue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
115 浏览

c++ - C++ 中的类型转换和引用

请看下面的调用和对应的函数,

writePage 声明如下

writePage 接受长引用和 char* 引用。上面没有编译,它显示以下错误

任何人都可以帮助我,如何处理这个......类型转换正在解决问题,如果我按照以下方式进行代码编译:

问题怎么解决??

0 投票
3 回答
23279 浏览

c++ - '?:' 的返回类型(三元条件运算符)

为什么第一个返回引用?

而第二个没有?

实际上,第二个根本没有编译 - “不是左值赋值”。

0 投票
7 回答
239 浏览

c++ - RValue 由什么构成?

RValues 是不可操作的内存区域,所以像整数这样的文字被认为是 RValues。

  1. 常量是否构成 RValues?const int x = 0;至少可以操作一次。
  2. 现在,编译器创建的临时对象也是 RValue,即使它们具有可操作的内存区域。为什么呢?
    因为它们不能被“用户”修改?这是原因吗?

那么,“用户”无法操作的内存区域称为 RValue 吗?

0 投票
1 回答
136 浏览

antlr - ANTLR 语法和语法谓词中的左值意识

我正在为 D 实现一个带有 ANTLR 的解析器。这种语言基于 C,因此声明和表达式存在一些歧义。考虑一下:

由于第二个示例只能出现在赋值表达式的右侧,因此我尝试使用以下代码段解决此问题:

据我了解,这应该可以避免歧义,但测试失败了。如果我向解释器提供任何输入,从规则 assignOrConditional 开始,它将因 NoViableAltException 而失败。输入是

也许我误解了谓词是如何工作的,因此如果有人可以更正我对代码的解释,那就太好了:如果输入可以被读取为 postfixExpression,它将检查 postfixExpression 之后的下一个标记是否是赋值运算符之一如果是,它会将规则解析为 assignmentExpression。(注意, assignmentExpression 和 conditionalExpression 效果很好)。如果下一个标记不属于它们,它会尝试将其解析为条件表达式。

编辑 [已解决] 现在,我可以意识到这个解决方案还有另一个问题:assignmentExpression 必须在它的右手表达式中选择再次是一个赋值(即后缀和赋值运算符跟随),如果它被链接起来。

知道我的理解有什么问题吗?

0 投票
3 回答
6368 浏览

c++ - “需要左值作为赋值的左操作数”在奇怪的地方--C++

注意:这不是标题中具有此名称的十亿和一个问题的重复。这与指针和非常奇怪的东西有关,而不是偶然=而不是==.

我有一个 C++ 函数,其中有一个void*名为out. 我有这条线:

size在哪里uint32_t*。编译器抱怨:

怎么了?

0 投票
1 回答
654 浏览

c++ - const_cast 的行为

我正在阅读 C++ 中的 const_cast 运算符

1.我无法理解的第一件事是

const_cast 运算符语法,即

-const_cast--<--Type-->--(--expression--)--------------------><

我对这种语法的理解是它有助于抛弃expression类型的Type常量。但是考虑一下这段代码

在 line 中ConstTest *c = const_cast<ConstTest*>(this),我认为this指针的 const 应该被丢弃,但输出显示它是 this引用的对象失去了它的 const-ness。

我觉得代码应该是ConstTest *c = const_cast<ConstTest>(*this),但这会产生错误。我知道我在很多解释上都错了。请全部纠正。

2.我的第二个问题是下面给出的陈述

const_cast 表达式的结果是一个右值,除非 Type 是一个引用类型。在这种情况下,结果是一个左值。

为什么会这样,为什么在指针的情况下它不是真的?

0 投票
5 回答
1547 浏览

c - C编程;需要左值

可能重复:
需要左值错误

我的 C 程序有错误

当我编译这段代码时,我得到 lvalue required 错误。对于带有 arr++ 的行。任何帮助!

0 投票
2 回答
1476 浏览

function - 左值需要作为赋值的左操作数(不是“使用 ==”)

尝试分配函数指针时出现左值操作数问题。我不知道问题到底出在哪里,但我会给你所有与该特定问题有关的代码。

任何帮助都会很棒。

0 投票
4 回答
2378 浏览

c - 检查和比较不同类型变量的内存地址

我正在尝试比较内存中两个变量的地址:

这是 chunk_t 的原型:

我的 if 语句中出现关于“需要左值作为一元 '&' 操作数”的编译器错误。

我以为是因为我添加了一个 int old_chunk->size 和一个 chunk_t old_chunk,所以我在 if 语句中将 old_chunk->size 类型化为一个 chunk_t,编译器告诉我“请求转换为非标量类型”

0 投票
1 回答
145 浏览

ios - 需要左值作为 ios 中赋值的左操作数

这是我的代码

其中 X 是双精度数组

谢谢