问题标签 [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 - 指针递增和取消引用(需要左值错误)
我试图了解指针递增和取消引用是如何结合在一起的,我这样做是为了尝试一下:
我希望这段代码能够执行以下操作之一:
- 先解引用再增加指针(打印word1)
- 首先取消引用然后增加值(打印 ord1)
- 取消引用指针 + 1(打印 word2)
但是编译器甚至不会编译它,并给出这个错误:lvalue required as increment operand
我在这里做错了吗?
c++ - lvalue required as left operand of assignment C++ compilation error
Im trying to build a minesweeper game and i keep getting a compiling error: lvalue required as left operand of assignment. only on these two lines:
I'm trying to get my cells to swap, so that the mines would randomize every new game. Ive searched around and couldn't find a solution to this. I added "==" but that function isn't going to do what i want it to.
++EDIT++ I'm sorry it did state lvalue required, i missed typed that
Thats the error that occurs.
c++ - C++ 错误 C2102:“&”需要左值
我正在用 C++ 创建一个带有很多菜单和子菜单的控制台应用程序。我显示菜单的方式是通过 do-while 循环。我创建了一个函数来显示具有三个参数的菜单循环 - 第一个是与菜单中有多少选项有关的整数,第二个是显示菜单的函数,第三个是执行用户输入的选择的另一个函数.
我收到的错误是"error C2102: '&' requires l-value"。我对编程有点陌生,这是我第一次将函数作为参数传递。我正在制作这个函数来消除我已经注释掉的代码。任何人都可以指出我出错的地方和可能的解决方案。如果没有,我会为每个我知道是不好的编程习惯的菜单使用重复的代码。
c - 转换错误:需要左值作为赋值的左操作数
所以我尝试使用ether_aton()
which 返回一个struct ether_addr *
.
我试图把它放在我的struct ether_header *eptr
(来自net/ethernet.h)中,它有ether_shost
成员。我试过这个:
这给了我"Error: lvalue required as left operand of assignment"
我知道我只是没有正确地投射它,但不知道如何。
编辑:最终得到它。谢谢你们的帮助。
只需单独分配每个八位字节。
c - C如何识别右值和左值?
在 C 中,有没有办法识别右值和左值?
其中一些很容易识别,比如在赋值中,左边的值是左值,右边的值是右值。
但在其他情况下,很难识别这样的规则。
例如:*p++
and i++
(其中 p 是指向整数的指针,i 是整数) - 如何识别它是右值还是左值?上下文是++*p++
有效的,而++i++
不是因为i++
是右值(正如严肃的人所说)。
如何识别表达式中的右值和左值?
c - 使用 (void *) 作为通用数据容器时的 L 值问题
这是程序中使用的结构:
现在:
basic_block
在程序执行期间存在几个实例。- 该程序分阶段/通过,一个接一个地执行。
- 该
aux
字段用于在阶段basic_block
执行期间存储阶段和特定数据,并由阶段本身释放(以便下一阶段可以重用它)。这就是为什么它是一个void *
.
我的舞台用来aux
存储 a struct
,所以每次我想访问某些东西时,我都必须做一个演员表:
现在,我的问题是:每次都像这样投射它是一种痛苦,当它是更复杂表达式的一部分时,很难阅读。我提出的解决方案是:使用宏为我做演员:
然后我可以通过以下方式访问我的数据:
但是:我不能将MY_DATA(bb)
自身用作 L 值(对于 a malloc
),所以我使用该宏毕竟不是一个好主意:
我的问题:
我该怎么做才能以aux
干净的方式引用并且仍然能够将其用作 L 值。
c++ - MSVC++ 使用基本运算符 = 重载作为左值而不是右值?
这是编译器启动画面(用于版本等):
我有一个基类(这是一个模板),想象它是:
然后我有一个派生类,它不会operator =
以任何方式重新实现。
如果我执行以下操作:
在operator =
第二行调用接受左值的。
如果我进入定义Derived<T>
并添加以下内容:
operator =
接受右值的 被调用。
即使我还实现了operator =
which 采用左值(以几乎相同的方式),这种行为仍然存在。
因为没有更好的短语:什么给了?
我是否误解了 C++ 或者这不是它应该如何工作的?
c++ - 我什么时候应该选择复制省略而不是通过 const 引用传递参数?
可能重复:
按值传递是 C++11 中合理的默认值吗?
我在读想要速度?按值传递。戴夫亚伯拉罕关于复制省略和 RVO。我想知道为什么我们需要复制省略?
我被告知太多次,你应该通过 const 引用传递函数参数以避免复制(我读过的几乎每一本 c++ 书籍都告诉我这一点)。
假设我们有两个函数:
如果实际参数是右值,则在两个函数中都将避免复制。但是如果实际参数是一个左值,复制只会在 f1 中避免,而不是在 f2 中。那么为什么我们需要这个功能呢?
c - 需要 L 值吗?C 编程位模式
/*Error: Lvalue required in Function InsertA 对这家伙有什么想法吗?菜鸟在这里
*/
python - 是否有可能在 python 中类似于 perl 的左值或 lisp 的 setf?
在 lisp 中,您可以说:
在 perl 中你可以说:
在python中可能有这样的事情吗?我的意思是可以将函数结果用作左值(作为赋值操作的目标)吗?