当前位置:首页 > 应用 > c++中左值赋值条件

c++中左值赋值条件

  • 2023-05-15 00:58:16

c++中左值赋值条件?

c++中左值赋值条件

C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量。左值表示存储在计算机内存的对象,而不是常量或计算的结果。或者说左值是代表一个内存地址值,并且通过这个内存地址,就可以对内存进行读并且写(主要是能写)操作;这也就是为什么左值可以被赋值的原因了。相对应的还有右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值。简单来说就是,左值相当于地址值,右值相当于数据值。右值指的是引用了一个存储在某个内存地址里的数据。 举例是: 比如: int ia,ib;ib=0;ia=ib;在这里,首先定义ia,ib。然后对ib赋值,此时计算机取ib的左值,也就是这个符号代表的内存位置即内存地址值,计算机取0的右值,也就是数值0;然后给ia赋值为ib,此时取ib的右值给ia的左值;所以说,ib的左值、右值是根据他的位置来说的;这也算是形式语言的一个有意思之处吧。 值得注意的是: 左值右值翻译可能有些问题。L-value中的L指的是Location,表示可寻址。Avalue (computer science)that has an address.R-value中的R指的是Read,表示可读。in computer science, a value that does not have an address in a computer language.左值和右值是相对于赋值表达式而言的。左值是能出现在赋值表达式左边的表达式。左值表达式可以分为可读写的左值和只读左值。右值是可以出现在赋值表达式右边的表达式,他可以是不占据内存空间的临时量或字面量,可以使(还是《是》)不具有写入权的空间实体。如int a=3;const int b=5;a=b+2; //a是左值,b+2是右值b=a+2; //错!b是只读的左值但无写入权,不能出现在赋值符号左边(a=4)+=28; //a=4是左值表达式,28是右值,+=为赋值操作符34=a+2; //错!34是字面量不能做左值 通俗点说理解左值和右值是这样的: 首先左值和右值是表达式。左值是可以放在赋值符号=左边,逻辑上表示一个位置,可以赋予值。而右值是可以放在赋值符号右面,逻辑上表示一个值,因为不是个位置,那么不能被赋值。所以左值一定是右值,右值不一定是左值。

声明:本文内容及图片来源于读者投稿,本网站无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。请将本侵权页面网址发送邮件到583666585@qq.com,我们会及时做删除处理。

热门阅读

最新文章