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

c++ - 有什么方法可以将右值/临时对象传递给需要非成本引用的函数?

我知道 C++ 只允许右值或临时对象绑定到常量引用。(或类似的东西......)

例如,假设我有功能doStuff(SomeValue & input)
SomeValue getNiceValue()定义:

所以,三个问题:

  1. 由于我不能随意更改doStuff()or的签名getNiceValue(),这是否意味着我必须始终使用某种“名称”(即使是多余的)来传递我想要传递给的任何东西doStuff

  2. 假设,如果我可以更改函数签名,这种事情是否有共同的模式?

  3. 新的 C++11 标准会改变一切吗?C ++ 11有更好的方法吗?

谢谢

0 投票
3 回答
896 浏览

c - 即使在正确转换之后,增加 void 指针也需要左值

我正在实施memset()方法。下面是代码片段:

我收到的错误是:

当我将 ptr 的类型从 更改为void*int*,它编译成功

为什么它要求左值?

0 投票
1 回答
1619 浏览

octave - Octave 将 strsplit 返回值向量化为单独的变量

我有一个包含记录列表的文件,我一次解析一行。每条记录用换行符分隔,每个值用空格分隔。这只是一个简化的示例,但它具有与真实数据相似的结构。

第一个值是名字,然后是他们最喜欢的颜色,然后是他们最喜欢的食物。假设这是在一个处理循环中,我想为每个值设置变量。对于第一行,我的值应该是这样的。

我在行中阅读并开始

strsplit 似乎是个好主意,但它输出一个单元数组而不是字符串矩阵,我最终得到

我想要类似的东西

这给了我error: invalid lvalue function called in expression

数组可以用作左值,所以我尝试了

那不是我想要的。

0 投票
3 回答
246 浏览

c - 右值定义是不能赋值的对象,但为什么文字是左值?

所以我正在回顾我们即将到来的主题,我遇到了左值和右值,尽管定义让我感到困惑。为什么文字是左值?

“右值是指存储在内存中某个地址的数据值。右值是一个表达式,不能为其分配值”

“左值的原始定义是指“可以出现在赋值左侧的对象。”但是,const 对象是左值,但它们不能出现在赋值的左侧。

0 投票
2 回答
245 浏览

c - 左值无效,函数指针也一样,这个有什么用?调用函数要简单得多

所以我正在练习指向函数的指针,并尝试制作这个简单的程序,这是它的一个片段。在分配地址时,它仍然给我一个错误“无效的左值”。例如,funcptr = &addnum。我也忍不住想知道这个有什么用?调用函数是不是简单多了?还是我误会了什么

0 投票
5 回答
8345 浏览

c - int *x[] 和 int (*x)[] 的区别?

我的老师让我找出区别。有人可以帮我吗?实际上我知道第一部分是指针数组,但第二部分是什么意思。两者都不相同,因为我为此尝试了一个代码:

收到错误提示“需要左值”

0 投票
1 回答
1147 浏览

c - 如何为通过指针算术计算的内存地址赋值?

我需要创建一个完全通用的链表,它可以包含枚举指定的任何类型的数据......

列表的一个节点具有以下结构:

第一个字段是 sizeof(nodeType) 字节,包含存储的信息类型。下一个字段的地址包含信息变量的地址。下一个字段具有下一个节点的地址,它可以是一个简单的节点或另一个链表。

基本上,我有一个 nodeType 枚举为:

我已经为这样的节点指针分配了内存:

第一个 sizeof(nodeType) 字节包含存储的信息类型。我通过表达式为它分配了值 STRING:

现在,我希望下一个 sizeof(char*) 字节存储 char* 指针的地址。(机器上的所有指针都具有相同的大小?(是的,根据我的说法)).. 所以,我给它分配了一个值,例如:

但是 GCC 会标记一个错误,因为赋值运算符的 LHS 不是左值。我需要为该地址分配值才能继续构建该列表。除了使用结构之外,在 c 中是否有一些优雅的方法可以做到这一点?

0 投票
2 回答
25964 浏览

c - 为什么需要左值作为增量操作数错误?

为什么需要左值作为增量操作数错误在a=b+(++c++); ?

只想将 'b+(c+1)' 分配给 'a' 并同时将 'C' 增加 2。

我是初学者只是想澄清一下“LVALUE ERROR”实际上是什么?

0 投票
2 回答
705 浏览

c++ - 获取 const 左值引用的地址是否合法?

在此代码中,a绑定到一个右值。获取地址是否合法?(通过法律我的意思是:在代码格式错误?我是否导致了未定义的行为?)

0 投票
2 回答
1375 浏览

c++ - 地址不能取什么样的左值?

本次会议中,Scott Meyers 首先说“左值通常是您可以获取地址的表达式”。我一般都在强调这个词:你不能获取地址的左值是什么?(如果存在)。

编辑:请提供您的答案的代码片段,它使事情更清楚。