左值就是可以被修改的值 你把==错误的写成了=,所以错了,这是逻辑比较,不是赋值,赋值是单等于,比较是双等于
编程语言CPL第一次引入了值类别,不过其定义比较简单,即对于赋值运算符,在运算符左边的为左值,在运算符右边的为右值。 C语言遵循与CPL类似的分类法,但是其弱化了赋值的作用,C中的表达式被分为左值和其它(函数和非对象值),其中左值被定义为标识一个对象的表达式。不过,C语言中的左值与CPL中的左值区别是,在C语言中...
这里我们看左值,是1是常量,这里就会有问题了,编译会报错!因为常量不可被修改、不可以被赋值!所以大家可能会听过或见过”可修改/不可修改的左值”。 3.数组名做左值和右值的区别: 例如有字符数组char a[100]; 当a做右值时候,我们可以把它赋给char *类型的指针,用来指向这个数组,这种情况下数组名做右值代表该...
lvalue required as left operand of assignment。翻译过来就是:左值必须作为赋值的左操作数。
左值就是在赋值中可以放在赋值操作符两边的值,比如: int a = 1; double b = 2.0 a = b; b = a; 这里a和b都是左值, 你那个c+k = 32不能写成 32=c+k 因为32是常量,所以这个不是左值
B: fun1返回一个引用,属于左值,因此可以作为内置赋值运算符的左操作数; C: C试图将一个右值强制转换为引用,但是,只有const引用才能引用一个右值,因此错 误; D: D比C进步了一点,强制转换为const引用,但仍然是错误的,因为const引用属于不可修改的左值,不能通过const引用修改其引用的对象; ...
原文地址 在C语言学习过程中,大家或许听到过左值和右值的概念,甚至在调试程序时编译器也会给出” left operand must be l value ” 即左操作数必须为左值!今天我们将为大家详细解释这两个词,以及两者的区别! 简单而言,在赋值运算符“=”左边的就是左值,在赋值运算符
[C]左值 一、概述 左值是一个很让人困惑的概念,通常一条赋值表达式,例如x = y; 左边的操作数一定要是一个左值才能够被赋值,否则编译器就会报错: error: lvalue required as left operand of assignment 要搞清楚左值的含义,首先要理解C语言的“对象”这一概念:...
左值表示一个占据内存中可识别位置的一个对象,更进一步地,可以对左值取地址。赋值语句中左操作数必须是一个左值,赋值操作本质上是对内存进行更新,所以我们必须要找到内存地址才能更新。注意:常量不能作为左值。 6. if的条件表达式后多加了分号: 之前说过,语句末不加分号是...