问题标签 [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 - 为什么 a+++++b 不起作用?
此代码给出以下错误:
错误:需要左值作为增量操作数
a++ +
但是,如果我在整个and中放置空格++b
,那么它就可以正常工作。
第一个示例中的错误是什么意思?
c - 尝试在 C 中引用值时出现 LValue 错误
这对某人来说肯定很有趣。所以我有一个对象数组(在我的测试/演示代码中,为了简单起见,我只是将它们加倍),然后我创建了一个指向这些对象的指针数组。
我这样做的原因是因为我要交换对象,并且交换对象本身会很昂贵,而交换它们的指针(在辅助数组中)很便宜。
我的盒子数据类型中有许多子索引。基本上,我的目标是能够保持指向盒子“拥有”的对象的连续指针。为此,当我从一个盒子转移到另一个盒子时,我必须在主指针数组中执行多次交换。我通过使用我的盒子结构中的子索引来做到这一点,并且在那里发生了错误......请参阅注释行以了解错误。
我认为这是因为“-1”,但是当我在上面的循环中用“+1”做类似的事情时,我不确定为什么这是无效的。
PS这是真正的测试代码。我编译
g++ main.cpp
. 我没有仔细注意评论和大小写,只是试图坚持MSDN建议的大小写方案,所以不要判断......这只是一个快速&肮脏的测试!
编辑 1
这是任何关心的人的工作代码... PMG 我将其更改为c++
给定new
用法。和希思我给你信用,虽然你的回答没有解决根本问题。
这是真正的解决方案:
注意正确的交换!
c++ - 更多左值错误
下面是一个三重嵌套索引方案。我指向指针数组的指针在注释行上被取消引用......理论上这应该给我一个指针。我从中减去一个,然后引用它并将其重新分配给指向指针数组的指针。但是该行给出了操作数“&”的左值错误。
让我非常清楚。我想知道为什么这里会发生错误,并获得一种方法,该方法可用于将指针数组中前一个元素的地址分配给我的帧双指针。
我只会接受满足这两个标准的完整解决方案....
c - 如何让这个简单的 C 测试程序加载模块工作?
我打算在 linux 上使用 dlopen 和 dlsym 来使这两个源文件工作:
和:
但是当我编译第一个时,它一直说:
main.c:9:错误:需要左值作为赋值的左操作数
编辑:我尝试添加一个演员,并使其成为一个函数指针,但现在它说: main.c:(.text+0x1f): undefined reference to dlopen'
main.c:(.text+0x2b): undefined reference to
dlsym'
c - 这些 C 指针操作会导致问题吗?
假设我有这个:
我确定这将是一个问题,因为我将取消引用一个NULL
指针:
另一方面,我认为这个可以,因为我会得到不是NULL
本身的 *p 的地址:
我在这两种情况下都对吗?
c++ - 临时对象和引用是怎么回事?
人们经常会读到您不能将普通的左值引用绑定到临时对象。因此,当他们不想涉及复制时,经常会看到 A 类的方法以 const A& 作为参数。然而,这样的构造是完全合法的:
因为它没有将临时对象 3 + 4 绑定到引用 d,而是使用对象 3 + 4 初始化引用。正如标准所说,只有当值不是类型或引用(或继承)时,引用才会使用从临时对象获得的对象进行初始化,使用转换或某事(即另一个临时对象)。在这种情况下,您可以看到:
这是不合法的,因为 i 不是 double 类型,也不是从它继承的。然而这意味着,临时对象可以绑定到引用 - 但它真的有约束力吗?不是用临时对象作为参数的复制构造函数创建一个新对象吗?
因此,正如我认为的那样,让方法采用 const A& param 而不是 A& 并不是在第二种情况下,这种方法不能作为参数 A 类型的临时对象(因为它会),而是因为它涉及复制构造函数(就像参数是 A 类型一样)。我对吗?
c - “&(epage->incoming[0]) = spage;”的区别 和“&(epage->incoming[p2]) = spage;”
此特定代码块的最后一行产生错误“需要左值作为赋值的左操作数”。困惑在于为什么最后一行会引发此错误,而倒数第二行则不会。
其中spage
,epage
是下面定义的结构:
并且该函数find
返回一个指向 a 的指针struct webpage
。
通过更改结构outgoing
和incoming
双指针并将最后一行更改为(epage->incoming[p2]) = spage;
.
仍然不知道为什么会发生错误...
c - 表达式必须是可修改的 L 值
我这里有char text[60];
然后我在一个if
:
它总是说表达式必须是一个可修改的 L 值。
c++ - C ++:返回值是L值吗?
考虑这段代码:
没有编译器抱怨它,即使是 Clang。为什么q() = ...
线是正确的?
objective-c - 将硬编码值添加到 contentSize
我一直试图让我的滚动视图正确地适合它的内容,包括标签、UIImageView 和文本视图。textview 的大小动态调整为不同的文本,因此我使滚动视图的内容大小与 textview 的相同:
这按预期工作,所以我的滚动视图接近我想要的大小,但我只需要添加一个静态的 180 像素左右来弥补标签和图像,它们不会改变大小。我猜这是一个简单的 1 或 2 行代码,但我无法弄清楚。我试过了:
和
以及其他几种组合以使其工作,但我不断收到错误,例如 Lvalue 需要作为赋值的左操作数,或者二进制 + 的操作数无效。我确定我缺少一个简单的解决方案,感谢您的帮助。