lvalue相关内容

关于如何识别Rvalue或Lvalue引用和if-it-has-a-name规则

我正在阅读Thomas Becker的关于右值引用及其使用的文章。在那里他定义了他所说的 if-it-has-a-name 规则: 声明为右值引用可以是lvalues或 rvalues。区分标准是:如果它有一个名称,那么它是 一个左值。否则,它是一个右值。 这听起来很合理。它还清楚地标识了右值引用的重要性。 我的问题是: 您同意这项规定吗?如果没有,您可以举一个违反此规 ..
发布时间:2016-10-13 09:50:50 C/C++开发

使用(无效*)时,作为一个通用的数据容器L值的麻烦

下面是在程序中使用的结构: 结构basic_block { void *的辅助; / *诸多领域, 这是无关紧要的。 * / }; 现在 basic_block 的几个实例程序的执行过程中存在。 该项目工程分阶段/通行证,这是一个接一个执行。 的辅助字段是为存储级和 basic_block A阶段的执行过程中的具体数据,并释放通过舞台本身(所以下一个阶段可以重复使用它)。这 ..
发布时间:2016-08-25 09:30:00 C/C++

是* P是左值或右值

在以下code,是 *一个右值或左值? 的#include<&stdio.h中GT;无效的主要() { INT B = 2; 为int * A = NULL; 一个=和b; * A = 3; 的printf(“%d个”,一*);} 解决方案 有一个左值,并且可以在r值的上下文中使用。见例子; INT I,J,* P,* Q; P =&放;我; ..
发布时间:2016-08-24 13:02:08 C/C++

是取消引用指针有效左值?

假设定义: INT I = 10; 为int * p =&放;我; 为什么* P一个有效左值这里: * P + = 10; 应该不是* P计算为贮存于放大器的整型值;我,即得。 10,因此产生了“不是左值”的错误? 解决方案 在左值是指一个地区的前pression 存储的能够被操纵 * P 就是这样一个前pression指向存储的区域。这比说 10 + = 10个 ..
发布时间:2016-08-22 16:38:54 C/C++

铸造错误:左值要求作为分配的左操作数

所以我试图用 ether_aton()返回一个结构ether_addr * 。结果 我试图把它放在我的结构ether_header * EPTR (净/ ethernet.h),它具有 ether_shost 成员。我想这样的: 结构ether_header * EPTR; / *净/ ethernet.h * / ... (结构ether_addr *)(eptr-> ether_ ..
发布时间:2016-08-19 14:39:41 C/C++

需要左值

什么是错误消息“左值需要”,其实是什么意思? 解决方案 这是左值是'可分配的东西'的东西,可以在赋值的左侧出现,换句话说 所以,寻找一个任务,其中左侧是不是'分配',例如,这么简单的东西可能会引发这样的错误 如果(0 =富) {} 在这里,你得尝试分配给一个常量,因为不小心使用=,而不是==的 另请参见 经常使用很少定义的术语:左值 左值和右值 “所需的L值”错误 ..
发布时间:2016-08-18 23:59:47 C/C++

防爆pression必须是一个可修改的L值

我这里有字符文本[60]; 然后我在如果: 如果(数量== 2) 文字=“真棒”; 其他 文字=“你失败了”; 和它总是说前pression必须是一个可修改的L值。 解决方案 您不能更改文本值,因为它是一个数组,而不是一个指针。 无论其声明为字符指针(在这种情况下,最好将其声明为为const char * )为const char *的文本; 如果(数== 2) 文字 ..
发布时间:2016-08-18 22:09:31 C/C++

左值要求作为增量操作数错误

的#include<&stdio.h中GT;诠释的main() { INT I = 10; 的printf(“%d个\\ n”,++( - 我)); //< - 错误这里 } 什么是错的 ++( - 我)?请澄清。 解决方案 -i 生成一个临时的,可以不适用 ++ 上的临时(作为右值前pression的结果而产生)。 pre增量 ++ 要求其操作数是一个左值, ..
发布时间:2016-08-18 13:21:11 C/C++开发

左值要求作为分配的左操作数

为什么我收到 左值要求作为分配的左操作数 用一个字符串比较?我怎么能在ç解决这个问题?如果(STRCMP(“你好”,“你好”)= 0) 谢谢! 解决方案 您需要比较,不分配:如果(STRCMP(“你好”,“你好”)== 0) ^ 由于要检查是否 STRCMP的结果(“你好”,“你好”)等于 0 。 关于错误: 需要 ..
发布时间:2016-08-18 13:04:21 C/C++

是文字字符串和函数的返回值左值右值还是?

只是想知道一个字符串是一个左或右值。其他的文字(如整型,浮点,焦炭等)的左值或右值? 是一个函数左值或右值的返回值? 你如何分辨? 解决方案 字符串文字是左值,但你不能改变它们 右值,但如果它是一个指针和非NULL,它指向的对象是到左值 C标准承认的原有条款主张的左的和的右键的如 L = R ;然而,它说想左值作为的定位符值的,这大概意味着你可以得到一个对象的地址, ..
发布时间:2016-08-17 21:11:15 C/C++

为什么用C而不是+++++ b工作?

INT的main() { 诠释一个= 5,B = 2; 的printf(“%d个”,一个+++++ b)条; 返回0; } 这code提供了以下错误: 错误:左值要求作为增量的操作数 但是,如果我把空格整个 A ++ + 和 ++ b ,然后正常工作。 INT的main() { 诠释一个= 5,B = 2; 的printf(“%d个”,一个+ + + ..
发布时间:2016-08-17 20:30:16 C/C++

如何分配给名称()中的R的变量的值的属性

在R,“分配('X',V)”规定,其名称是对象的“x”为诉由应用文本函数变量x的结果“X”替换。那么,“分配”显示了它的价值。 不幸的是,“分配(糊('名称(','X',')',九月=''),v)的”失败。所以,如果“X”是一个变量x,我可以设置它的价值,但我不能给它的名字为它的元素。 可在一个解决此问题?解析-EVAL把戏可能?谢谢你。 解决方案 在你问问题,没有必要为分配名称的形式 ..
发布时间:2016-07-21 21:58:43 其他开发

一个合法的数组赋值。可能吗?

阅读中的K&放大器结构的章节后,R的书,我决定做一些测试,以更好地了解他们,所以我写了这片code的: 的#include<&stdio.h中GT; #包括LT&;&string.h中GT;结构测试FUNC(字符* C);结构测试 { INT I; 诠释J; 炭×〔20〕; };主要(无效) { 焦C [20]; 结构{INT I;诠释J;炭×〔20 ..
发布时间:2016-06-02 21:50:22 其他开发

"需要与QUOT左值;努力增加阵列时出错

可能重复:结果 是数组名在C中的指针? 假设我有一个字符数组说编曲和改编将重新present第一个元素的地址,以便ARR ++应该是完全合法的,那么为什么编译器说“左值要求。 另外,如果我这样做: ARR = ARR + 1,那么它为什么是无效的转换。我只是一个增加指针。编译器告诉LHS上的操作数类型为char [4],但在RHS它的char *。 的main() { ARR的cha ..
发布时间:2016-06-01 22:12:51 其他开发