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

c语言左值对象

发布时间: 2022-03-03 10:00:18

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"都是右值,所以不能放在赋值操作符左边,一切常数、字符和字符串都是右值。

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

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

❸ 关于C语言类型及左值问题

typedef char VertexType[5];
typedef VertexType SElemType;
SElemType属于char*
改过后
typedef VertexType* SElemType;
SElemType属于char

*S->top++ = e;
S->top属于char [5];
e属于char*
改过后两边都是char型
*S->top++取值为char型,然后指针加1

❹ c语言中a能做左值么

如果定义时没有const 修饰就可以,否则不行

❺ 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语言问题 关于左值的

前面加include<string.h>
strcpy(tiinf[0].NO, "ZH9658")

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

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

❽ C语言中的左值究竟是什么值

可赋值的值,可改变的值,存储位置可以自由访问的值。。。

❾ c语言中什么是左值

左值是指可以被赋值的表达式。左值位于赋值语句的左侧,与其相对的右值(rvaule,见 1.11)则位于赋值语句的右侧。每条赋值语句都必须有一个左值和一个右值。左值必须是内存中一个可存储的变量,而不能是一个常量.

❿ C语言中左值对象有哪些哪些数据类型或是表达式可以算作是左值!

左值,算是可访问存储的区域,要求“可访问存储”,那就可改变,变量(很多类型)就是,常数不是,你可以根据这个判断下左值。

理解下左值对象吧,一般来说是计算机里一块可访问可存储的区域,对象只是这块区域的抽象标识,变量a,b,*p等都算,只不过按不同的类型分出不同大小的区域。标识可以任意给,所以对象有哪些,举不完,而对象类型倒是有,什么int对象,char对象,指针对象等等吧。

既然左值要求的是“可访问可存储”,即可找到它改变它,这个则不会关系到区域大小。而存储区域大小是靠类型来确定(比如int我分多大内存啊),既然不关系到大小,与数据类型何干!

有几个运算符构成的表达式,可以算是左值,不过很少(比如a++;a--;*p等他们可单独成立,这个我也知道不多,还有sizeof(?)挖一块?大小的区域),其他的一般都算右值的,因为表达式最后一般都会产生一个不可变的值(比如a+b,最终整个表达式代表一个结果值,不可变,它要赋给一个存储对象也就是左值),当然左值表达式可以做右值,它本来就存有一个值,可以传给他人嘛。。。
以前研究过左值,可以一起讨论下。。。。。