新人求助!有关lvalue和rvalue
++(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这个变量的值吗?
新手想不明白,求助 这里 (a++) 得到的值是一个常量 5,而非变量 a。 zltzlt 发表于 2020-10-1 21:12
这里 (a++) 得到的值是一个常量 5,而非变量 a。
但是a++不是相当于a = a+1吗,怎么就变成一个常量了呢? Jacksturdy 发表于 2020-10-1 21:18
但是a++不是相当于a = a+1吗,怎么就变成一个常量了呢?
a++ 的意思是先使用 a 再对 a 进行自增,所以 a++ 返回的是 a 的值即 5,而 a = a+1 返回的是自增后的 a 变量,两者不完全一样。
页:
[1]