问题标签 [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 投票
4 回答
1805 浏览

c - 指针递增和取消引用(需要左值错误)

我试图了解指针递增和取消引用是如何结合在一起的,我这样做是为了尝试一下:

我希望这段代码能够执行以下操作之一:

  1. 先解引用再增加指针(打印word1)
  2. 首先取消引用然后增加值(打印 ord1)
  3. 取消引用指针 + 1(打印 word2)

但是编译器甚至不会编译它,并给出这个错误:lvalue required as increment operand我在这里做错了吗?

0 投票
1 回答
1166 浏览

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.

0 投票
4 回答
5827 浏览

c++ - C++ 错误 C2102:“&”需要左值

我正在用 C++ 创建一个带有很多菜单和子菜单的控制台应用程序。我显示菜单的方式是通过 do-while 循环。我创建了一个函数来显示具有三个参数的菜单循环 - 第一个是与菜单中有多少选项有关的整数,第二个是显示菜单的函数,第三个是执行用户输入的选择的另一个函数.

我收到的错误是"error C2102: '&' requires l-value"。我对编程有点陌生,这是我第一次将函数作为参数传递。我正在制作这个函数来消除我已经注释掉的代码。任何人都可以指出我出错的地方和可能的解决方案。如果没有,我会为每个我知道是不好的编程习惯的菜单使用重复的代码。

0 投票
3 回答
4009 浏览

c - 转换错误:需要左值作为赋值的左操作数

所以我尝试使用ether_aton()which 返回一个struct ether_addr *.
我试图把它放在我的struct ether_header *eptr(来自net/ethernet.h)中,它有ether_shost成员。我试过这个:

这给了我"Error: lvalue required as left operand of assignment"

我知道我只是没有正确地投射它,但不知道如何。


编辑:最终得到它。谢谢你们的帮助。

只需单独分配每个八位字节。

0 投票
3 回答
716 浏览

c - C如何识别右值和左值?

在 C 中,有没有办法识别右值和左值?

其中一些很容易识别,比如在赋值中,左边的值是左值,右边的值是右值。

但在其他情况下,很难识别这样的规则。

例如:*p++ and i++(其中 p 是指向整数的指针,i 是整数) - 如何识别它是右值还是左值?上下文是++*p++有效的,而++i++不是因为i++是右值(正如严肃的人所说)。

如何识别表达式中的右值和左值?

0 投票
4 回答
457 浏览

c - 使用 (void *) 作为通用数据容器时的 L 值问题

这是程序中使用的结构:

现在:

  1. basic_block在程序执行期间存在几个实例。
  2. 该程序分阶段/通过,一个接一个地执行。
  3. aux字段用于在阶段basic_block执行期间存储阶段和特定数据,并由阶段本身释放(以便下一阶段可以重用它)。这就是为什么它是一个void *.

我的舞台用来aux存储 a struct,所以每次我想访问某些东西时,我都必须做一个演员表:

现在,我的问题是:每次都像这样投射它是一种痛苦,当它是更复杂表达式的一部分时,很难阅读。我提出的解决方案是:使用宏为我做演员:

然后我可以通过以下方式访问我的数据:

但是:我不能将MY_DATA(bb) 自身用作 L 值(对于 a malloc),所以我使用该宏毕竟不是一个好主意:

我的问题:

我该怎么做才能以aux干净的方式引用并且仍然能够将其用作 L 值。

0 投票
4 回答
213 浏览

c++ - MSVC++ 使用基本运算符 = 重载作为左值而不是右值?

这是编译器启动画面(用于版本等):

我有一个基类(这是一个模板),想象它是:

然后我有一个派生类,它不会operator =以任何方式重新实现。

如果我执行以下操作:

operator =第二行调用接受左值的。

如果我进入定义Derived<T>并添加以下内容:

operator =接受右值的 被调用。

即使我还实现了operator =which 采用左值(以几乎相同的方式),这种行为仍然存在。

因为没有更好的短语:什么给了?

我是否误解了 C++ 或者这不是它应该如何工作的?

0 投票
3 回答
2180 浏览

c++ - 我什么时候应该选择复制省略而不是通过 const 引用传递参数?

可能重复:
按值传递是 C++11 中合理的默认值吗?

我在读想要速度?按值传递。戴夫亚伯拉罕关于复制省略和 RVO。我想知道为什么我们需要复制省略?

我被告知太多次,你应该通过 const 引用传递函数参数以避免复制(我读过的几乎每一本 c++ 书籍都告诉我这一点)。

假设我们有两个函数:

如果实际参数是右值,则在两个函数中都将避免复制。但是如果实际参数是一个左值,复制只会在 f1 中避免,而不是在 f2 中。那么为什么我们需要这个功能呢?

0 投票
3 回答
253 浏览

c - 需要 L 值吗?C 编程位模式

/*Error: Lvalue required in Function InsertA 对这家伙有什么想法吗?菜鸟在这里

*/

0 投票
4 回答
407 浏览

python - 是否有可能在 python 中类似于 perl 的左值或 lisp 的 setf?

在 lisp 中,您可以说:

在 perl 中你可以说:

在python中可能有这样的事情吗?我的意思是可以将函数结果用作左值(作为赋值操作的目标)吗?