鱼C论坛

 找回密码
 立即注册
查看: 1453|回复: 3

[已解决]新人求助!有关lvalue和rvalue

[复制链接]
发表于 2020-10-1 21:01:59 | 显示全部楼层 |阅读模式

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

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

x
++(a++)不应该是先执行a++后在执行++a吗(先执行括号里面的),为什么在https://fishc.com.cn/thread-69833-1-1.html中却说

(a++) 是先将变量 a 的值(5)做为整个表达式的值返回,再将 a 自增 1(类似于 a = a + 1)。

所以这里 ++(a++); 相当于 ++(5), a = a + 1;

那当然要报错啦,5 是一个常量,当然不能给你 5 = 5 + 1 咯~


5不是a这个变量的值吗?



新手想不明白,求助
最佳答案
2020-10-1 21:29:19
Jacksturdy 发表于 2020-10-1 21:18
但是a++不是相当于a = a+1吗,怎么就变成一个常量了呢?

a++ 的意思是先使用 a 再对 a 进行自增,所以 a++ 返回的是 a 的值即 5,而 a = a+1 返回的是自增后的 a 变量,两者不完全一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-1 21:12:09 | 显示全部楼层
这里 (a++) 得到的值是一个常量 5,而非变量 a。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-1 21:18:34 | 显示全部楼层
zltzlt 发表于 2020-10-1 21:12
这里 (a++) 得到的值是一个常量 5,而非变量 a。

但是a++不是相当于a = a+1吗,怎么就变成一个常量了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-1 21:29:19 | 显示全部楼层    本楼为最佳答案   
Jacksturdy 发表于 2020-10-1 21:18
但是a++不是相当于a = a+1吗,怎么就变成一个常量了呢?

a++ 的意思是先使用 a 再对 a 进行自增,所以 a++ 返回的是 a 的值即 5,而 a = a+1 返回的是自增后的 a 变量,两者不完全一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 12:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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