当前位置:首页 » 编程语言 » 在c语言中什么叫左值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

在c语言中什么叫左值

发布时间: 2023-02-04 11:07:48

c语言,关于左值,右值的概念问题

1、例如:a[3] = 5;*p = 55;
2、非常量的变量空间可以写入,自然就是左值了
3、右值指的是常量或者比如算术运算的中间结果,只能读出,不能写入,当然就是右值了
一般而言,左值是可以作为右值的,左值的本意是只写,右值的本意是只读

⑵ C语言中什么叫做左值

左值就是在赋值中可以放在赋值操作符两边的值,比如:
int
a
=
1;
double
b
=
2.0
a
=
b;
b
=
a;
这里a和b都是左值,一切变量都是左值,但const变量是例外。
*p是一个左值,和变量一样,只要在*p的右边加上赋值运算符,就可改变*p的值。
如果p是一个指向常量的指针,*p就是一个不能修改的左值,即它不能被放到赋值运算符的左边。
i和
-i
都是表达式
但一个是左值(i),一个是右值(-i)。
++,--这两种操作符要求作用于左值,所以i++合法,(-i)++不合法。
不严谨的讲,左值右值的区分在于位于等号的那一侧,左侧的是左值,通常是一个变量,右侧的是右值,可以是一个变量,或者是一个表达式。

⑶ C语言中赋值运算符的左值,++ , --运算符的左值指的是什么

左值是左值表达式的简称,它是指可以放在=右边的表达式

比如:i++不是左值,++i是左值,i--不是左值,--i是左值

⑷ C语言 什么叫做左值右值

左值,就是指可以被取地址的表达式。简单的说,可以出现在等号左边的就是左值。比如:

⑸ 有些C语言书里面说的左值和右值到底什么意思。详解…

c语言里面只有左值和非左值,没有右值。
左值可以寻址的变量,也可以理解为可以放在赋值号左边的变量。
非左值就是左值以外的变量常量等值。
c++里面才有右值的概念。

⑹ C++中提到的左值是什么意思

在C语言中,左值(left value),指在赋值表达式(assignment expression)中作为将要赋予值的地址的表达式。


例如在赋值语句

i=10;

中i就是一个左值,它必须是一个变量,或是一个解引用的指针(如下)

int*p;
*p=10;


在C的yacc语法中,赋值表达式被这样定义

assignment_expression
:conditional_expression
|unary_expressionassignment_operatorassignment_expression
;

也就是说,在纯语法的层面,左值必须是一元表达式

⑺ C语言什么叫做左值右值

左值就是在赋值中可以放在赋值操作符两边的值,比如:
inta=1;
doubleb=2.0
a=b;
b=a;
这里a和b都是左值,一切变量都是左值,但const量是例外。
而右值则是只可以放在赋值操作符右边的值,比如:
inta=0;
char*b="hello";
3=a;//ERROR
"howdy"=b//ERROR
这里3和"howdy"都是右值,所以不能放在赋值操作符左边,一切常数、字符和字符串都是右值。

⑻ 左值和右值的区别

左值(lvalue)和右值(rvalue)最先来源于编译。在C语言中表示位于赋值运算符两侧的两个值,左边的就叫左值,右边的就叫右值。
定义:
左值指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以作为一个左值。
右值指的是引用了一个存储在某个内存地址里的数据。
从上面的两个定义可以看出,左值其实要引用一个对象,而一个对象在我们的程序中又肯定有一个名字或者可以通过一个名字访问到,所以左值又可以归纳为:左值表示程序中必须有一个特定的名字引用到这个值。而右值引用的是地址里的内容,所以右值又可以归纳为:右值表示程序中没有一个特定的名字引用到这个值。

++a的话因为返回结果和运算之后的a一样,所以++a返回的是真实的a,可以被重新赋值,所以可以作为左值。而a++返回的是运算之前的a,而此时a已经+1了,返回的数据其实是过去的a,它是另外复制出来的,而不是真正的a,所以无法被赋值,所以它只能是右值。

所以a++;在执行当中的顺序是,先把a的值复制出来,进行整体运算,然后再a=a+1。