① c语言中什么是左值
左值是指可以被赋值的表达式。左值位于赋值语句的左侧,与其相对的右值(rvaule,见
1.11)则位于赋值语句的右侧。每条赋值语句都必须有一个左值和一个右值。左值必须是内存中一个可存储的变量,而不能是一个常量.
② 什么是C语言左值(lvaule)求大神帮助
左值是指可以被赋值的表达式。左值位于赋值语句的左侧,与其相对的右值(rvaule,见 1.11)则位于赋值语句的右侧。每条赋值语句都必须有一个左值和一个右值。左值必须是内存中一个可存储的变量,而不能是一个常量。下面给出了一些左值的例子: int x; int *p_int; x=1; p_int=5; 变量x是一个整数,它对应于内存中的一个可存储位置,因此,在语句“x=1”中,x就是一个左值。注意,在第二个赋值语句“*p_int=5"中,通过“*”修饰符访问p_int所指向的内存区域;因此,p_int是一个左值。 相反,下面的几个例子就不是左值: #define CONST_VAL 10 int x /* example 1 * / l=x; / * example 2 * / CONST_VAL = 5; 在上述两条语句中,语句的左侧都是一个常量,其值不能改变,因为常量不表示内存中可 存储的位置。因此,这两条赋值语句中没有左值,编译程序会指出它们是错误的。
③ C语言 什么叫做左值右值
左值,就是指可以被取地址的表达式。简单的说,可以出现在等号左边的就是左值。比如:
④ C语言语法问题,左操作数必须为左值是什么意思啊我该怎么改啊
所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。改成b=9-c。
一般形式为:变量=表达式。它的作用是将一个表达式的值赋给一个左值。
计算赋值运算符右侧表达式的值(“=”为赋值运算符),将赋值运算符右侧表达式的值赋给左侧的变量,将赋值运算符左侧的变量的值作为表达式的值。
例如:
int
a,
b,
c;
a=3;
b=4;
c
=
(
a
+
b
)*(2*a
-
b)
//
得出14
(4)左值表达式c语言扩展阅读:
注意
1.
多重赋值表达式不能出现在变量说明中。例如:
int
i=j=0;
是非法的。
例:有变量说明
int
a=2,b;
指出下面表达式运算后a和b的结果。
b+=b=++a;
答:a为3,b为6。
<>
有时将赋值运算与比较运算结合在一起形成嵌入赋值。例如:
while
((ch=getchar())!='\n');
这条语句的含义是:等待用户按下回车键后程序向下执行。
2.
x
*=
y+8等价于x=x*(y+8),不等价于
x
=
x*y+8。
同样:z
&=
y-x等价于z
=
z
&
(y-x),而不等价于z
=
z
&y
-x。
参考资料:
搜狗网络-赋值运算符
⑤ C语言,关于左值,右值的概念问题
1、例如:a[3] = 5;*p = 55;
2、非常量的变量空间可以写入,自然就是左值了
3、右值指的是常量或者比如算术运算的中间结果,只能读出,不能写入,当然就是右值了
一般而言,左值是可以作为右值的,左值的本意是只写,右值的本意是只读
⑥ C++中提到的左值是什么意思
在C语言中,左值(left value),指在赋值表达式(assignment expression)中作为将要赋予值的地址的表达式。
例如在赋值语句
i=10;
中i就是一个左值,它必须是一个变量,或是一个解引用的指针(如下)
int*p;
*p=10;
在C的yacc语法中,赋值表达式被这样定义
assignment_expression
:conditional_expression
|unary_expressionassignment_operatorassignment_expression
;
也就是说,在纯语法的层面,左值必须是一元表达式