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

c - 为什么 a+++++b 不起作用?

此代码给出以下错误:

错误:需要左值作为增量操作数

a++ +但是,如果我在整个and中放置空格++b,那么它就可以正常工作。

第一个示例中的错误是什么意思?

0 投票
1 回答
222 浏览

c - 尝试在 C 中引用值时出现 LValue 错误

这对某人来说肯定很有趣。所以我有一个对象数组(在我的测试/演示代码中,为了简单起见,我只是将它们加倍),然后我创建了一个指向这些对象的指针数组。

我这样做的原因是因为我要交换对象,并且交换对象本身会很昂贵,而交换它们的指针(在辅助数组中)很便宜。

我的盒子数据类型中有许多子索引。基本上,我的目标是能够保持指向盒子“拥有”的对象的连续指针。为此,当我从一个盒子转移到另一个盒子时,我必须在主指针数组中执行多次交换。我通过使用我的盒子结构中的子索引来做到这一点,并且在那里发生了错误......请参阅注释行以了解错误。

我认为这是因为“-1”,但是当我在上面的循环中用“+1”做类似的事情时,我不确定为什么这是无效的。

PS这是真正的测试代码。我编译

g++ main.cpp

. 我没有仔细注意评论和大小写,只是试图坚持MSDN建议的大小写方案,所以不要判断......这只是一个快速&肮脏的测试!

编辑 1

这是任何关心的人的工作代码... PMG 我将其更改为c++给定new用法。和希思我给你信用,虽然你的回答没有解决根本问题。

这是真正的解决方案:

注意正确的交换!

0 投票
3 回答
135 浏览

c++ - 更多左值错误

下面是一个三重嵌套索引方案。我指向指针数组的指针在注释行上被取消引用......理论上这应该给我一个指针。我从中减去一个,然后引用它并将其重新分配给指向指针数组的指针。但是该行给出了操作数“&”的左值错误。

让我非常清楚。我想知道为什么这里会发生错误,并获得一种方法,该方法可用于将指针数组中前一个元素的地址分配给我的帧双指针。

我只会接受满足这两个标准的完整解决方案....

0 投票
3 回答
1237 浏览

c - 如何让这个简单的 C 测试程序加载模块工作?

我打算在 linux 上使用 dlopen 和 dlsym 来使这两个源文件工作:

和:

但是当我编译第一个时,它一直说:

main.c:9:错误:需要左值作为赋值的左操作数

编辑:我尝试添加一个演员,并使其成为一个函数指针,但现在它说: main.c:(.text+0x1f): undefined reference to dlopen' main.c:(.text+0x2b): undefined reference todlsym'

0 投票
3 回答
87 浏览

c - 这些 C 指针操作会导致问题吗?

假设我有这个:

我确定这将是一个问题,因为我将取消引用一个NULL指针:

另一方面,我认为这个可以,因为我会得到不是NULL本身的 *p 的地址:

我在这两种情况下都对吗?

0 投票
5 回答
2337 浏览

c++ - 临时对象和引用是怎么回事?

人们经常会读到您不能将普通的左值引用绑定到临时对象。因此,当他们不想涉及复制时,经常会看到 A 类的方法以 const A& 作为参数。然而,这样的构造是完全合法的:

因为它没有将临时对象 3 + 4 绑定到引用 d,而是使用对象 3 + 4 初始化引用。正如标准所说,只有当值不是类型或引用(或继承)时,引用才会使用从临时对象获得的对象进行初始化,使用转换或某事(即另一个临时对象)。在这种情况下,您可以看到:

这是不合法的,因为 i 不是 double 类型,也不是从它继承的。然而这意味着,临时对象可以绑定到引用 - 但它真的有约束力吗?不是用临时对象作为参数的复制构造函数创建一个新对象吗?

因此,正如我认为的那样,让方法采用 const A& param 而不是 A& 并不是在第二种情况下,这种方法不能作为参数 A 类型的临时对象(因为它会),而是因为它涉及复制构造函数(就像参数是 A 类型一样)。我对吗?

0 投票
1 回答
127 浏览

c - “&(epage->incoming[0]) = spage;”的区别 和“&(epage->incoming[p2]) = spage;”

此特定代码块的最后一行产生错误“需要左值作为赋值的左操作数”。困惑在于为什么最后一行会引发此错误,而倒数第二行则不会。

其中spage,epage是下面定义的结构:

并且该函数find返回一个指向 a 的指针struct webpage

通过更改结构outgoingincoming双指针并将最后一行更改为(epage->incoming[p2]) = spage;.

仍然不知道为什么会发生错误...

0 投票
1 回答
124485 浏览

c - 表达式必须是可修改的 L 值

我这里有char text[60];

然后我在一个if

它总是说表达式必须是一个可修改的 L 值。

0 投票
4 回答
10390 浏览

c++ - C ++:返回值是L值吗?

考虑这段代码:

没有编译器抱怨它,即使是 Clang。为什么q() = ...线是正确的?

0 投票
1 回答
195 浏览

objective-c - 将硬编码值添加到 contentSize

我一直试图让我的滚动视图正确地适合它的内容,包括标签、UIImageView 和文本视图。textview 的大小动态调整为不同的文本,因此我使滚动视图的内容大小与 textview 的相同:

这按预期工作,所以我的滚动视图接近我想要的大小,但我只需要添加一个静态的 180 像素左右来弥补标签和图像,它们不会改变大小。我猜这是一个简单的 1 或 2 行代码,但我无法弄清楚。我试过了:

以及其他几种组合以使其工作,但我不断收到错误,例如 Lvalue 需要作为赋值的左操作数,或者二进制 + 的操作数无效。我确定我缺少一个简单的解决方案,感谢您的帮助。