问题标签 [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.
c++ - C++ 中的类型转换和引用
请看下面的调用和对应的函数,
writePage 声明如下
writePage 接受长引用和 char* 引用。上面没有编译,它显示以下错误
任何人都可以帮助我,如何处理这个......类型转换正在解决问题,如果我按照以下方式进行代码编译:
问题怎么解决??
c++ - '?:' 的返回类型(三元条件运算符)
为什么第一个返回引用?
而第二个没有?
实际上,第二个根本没有编译 - “不是左值赋值”。
c++ - RValue 由什么构成?
RValues 是不可操作的内存区域,所以像整数这样的文字被认为是 RValues。
- 常量是否构成 RValues?
const int x = 0;
至少可以操作一次。 - 现在,编译器创建的临时对象也是 RValue,即使它们具有可操作的内存区域。为什么呢?
因为它们不能被“用户”修改?这是原因吗?
那么,“用户”无法操作的内存区域称为 RValue 吗?
antlr - ANTLR 语法和语法谓词中的左值意识
我正在为 D 实现一个带有 ANTLR 的解析器。这种语言基于 C,因此声明和表达式存在一些歧义。考虑一下:
由于第二个示例只能出现在赋值表达式的右侧,因此我尝试使用以下代码段解决此问题:
据我了解,这应该可以避免歧义,但测试失败了。如果我向解释器提供任何输入,从规则 assignOrConditional 开始,它将因 NoViableAltException 而失败。输入是
也许我误解了谓词是如何工作的,因此如果有人可以更正我对代码的解释,那就太好了:如果输入可以被读取为 postfixExpression,它将检查 postfixExpression 之后的下一个标记是否是赋值运算符之一如果是,它会将规则解析为 assignmentExpression。(注意, assignmentExpression 和 conditionalExpression 效果很好)。如果下一个标记不属于它们,它会尝试将其解析为条件表达式。
编辑 [已解决] 现在,我可以意识到这个解决方案还有另一个问题:assignmentExpression 必须在它的右手表达式中选择再次是一个赋值(即后缀和赋值运算符跟随),如果它被链接起来。
知道我的理解有什么问题吗?
c++ - “需要左值作为赋值的左操作数”在奇怪的地方--C++
注意:这不是标题中具有此名称的十亿和一个问题的重复。这与指针和非常奇怪的东西有关,而不是偶然=
而不是==
.
我有一个 C++ 函数,其中有一个void*
名为out
. 我有这条线:
size
在哪里uint32_t*
。编译器抱怨:
怎么了?
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 是一个引用类型。在这种情况下,结果是一个左值。
为什么会这样,为什么在指针的情况下它不是真的?
function - 左值需要作为赋值的左操作数(不是“使用 ==”)
尝试分配函数指针时出现左值操作数问题。我不知道问题到底出在哪里,但我会给你所有与该特定问题有关的代码。
任何帮助都会很棒。
c - 检查和比较不同类型变量的内存地址
我正在尝试比较内存中两个变量的地址:
这是 chunk_t 的原型:
我的 if 语句中出现关于“需要左值作为一元 '&' 操作数”的编译器错误。
我以为是因为我添加了一个 int old_chunk->size 和一个 chunk_t old_chunk,所以我在 if 语句中将 old_chunk->size 类型化为一个 chunk_t,编译器告诉我“请求转换为非标量类型”
ios - 需要左值作为 ios 中赋值的左操作数
这是我的代码
其中 X 是双精度数组
谢谢