鱼C论坛

 找回密码
 立即注册
查看: 1722|回复: 6

左值右值问题

[复制链接]
发表于 2020-4-1 23:23:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看来左值右值的扩展,但是还是不理解什么是左值,右值
请大佬们解答一下,这个东西有什么用呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-1 23:30:51 | 显示全部楼层
= 等号
a = b+c
a 是左值
b+c 是右值
在等号左边就是左值,右边就是右值。就是个称呼。你喜欢你叫左边的数,右边的数不也是一个意思。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 00:48:11 From FishC Mobile | 显示全部楼层
能被访问的变量就能做右值,能被修改的变量就能做左值。但是,谁是左值谁是右值,其实并没有那种一眼就看出来的特征,完全是你遇到一个就积累一个。比如说最基础的:普通类型的变量在函数体中既能被访问又能被修改,那就是既可做左值又可做右值。变量被const修饰,只能被访问而不能被修改,那就不能做左值。一般来说函数的返回值只能被访问,而不能被修改,那一般情况下,函数的返回值就只能是右值,不能为左值。再比如说数组名是固定的,就不能做左值。。。。
总之就是一个标识符,你要先知道它是什么品种,再知道该品种的概念和性质,最重要是能否修改。然后你知道它能否作为左值。
再总结为六个字,多学多看多记
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 09:31:58 | 显示全部楼层
倒戈卸甲 发表于 2020-4-2 00:48
能被访问的变量就能做右值,能被修改的变量就能做左值。但是,谁是左值谁是右值,其实并没有那种一眼就看出 ...

多学多看多记
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-2 09:56:50 | 显示全部楼层
ba21 发表于 2020-4-1 23:30
= 等号
a = b+c
a 是左值

可是小甲鱼那个左右值的扩展说的不是这样,说不能单纯理解为左边就是左值,右边就是右值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 10:00:10 | 显示全部楼层
能在程序中用&取地址的是左值,不能在程序中用&的是右值,如:一个变量a,它可以使用&a获取a的地址,但你使用&10是不行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-2 10:03:08 | 显示全部楼层
倒戈卸甲 发表于 2020-4-2 00:48
能被访问的变量就能做右值,能被修改的变量就能做左值。但是,谁是左值谁是右值,其实并没有那种一眼就看出 ...

好的,谢谢,我大概理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 17:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表