关于左值
#include <stdio.h>int main()
{
int a = 5;
++(a++);
return 0;
}
为什么这里不行了呢,在for语句的时候不也是用的是i++了吗,
如果这样理解的话,那int i =0,i++的话等于0=0+1了,
但是这个左值理解了,一个存放变量的标识符。 a++是返回++后的值,也就是5
你不能给一个常量++,而i++,++的是变量
不是常量。 qiuyouzhi 发表于 2020-4-29 17:07
a++是返回++后的值,也就是5
你不能给一个常量++,而i++,++的是变量
不是常量。
没太明白您说的话,可以在详细一点吗,a++和i++不是一样的吗 a++ 后得到的值是一个常量,常量不是左值,常量是无法改变的。
而 i++ 改变的是一个变量,变量是左值,所以没问题 Juniorboy 发表于 2020-4-29 17:10
没太明白您说的话,可以在详细一点吗,a++和i++不是一样的吗
是一样的,他们返回的值是什么?
是这个++后的值,也就是5(下一次操作才+1)
你不可以给5用自增操作。 zltzlt 发表于 2020-4-29 17:11
a++ 后得到的值是一个常量,常量不是左值,常量是无法改变的。
而 i++ 改变的是一个变量,变量是左值, ...
啊,您的意思是因为a++括号外面的那个++吗,本身a++没毛病,但是a++之后的值是6,是常量,而常量无法自增自减 a++ 返回的是 a 的原来的值,不是 a 这个变量 Juniorboy 发表于 2020-4-29 17:13
啊,您的意思是因为a++括号外面的那个++吗,本身a++没毛病,但是a++之后的值是6,是常量,而常量无法自增 ...
是的,但是提醒一下 a++ 后的值是 5,a++ 的意思是先使用 a 再将 a 加 1 。 qiuyouzhi 发表于 2020-4-29 17:13
是一样的,他们返回的值是什么?
是这个++后的值,也就是5(下一次操作才+1)
你不可以给5用自增操作。
明白了,谢谢 zltzlt 发表于 2020-4-29 17:14
是的,但是提醒一下 a++ 后的值是 5,a++ 的意思是先使用 a 再将 a 加 1 。
明白了,谢谢 Juniorboy 发表于 2020-4-29 17:15
明白了,谢谢
那就设个最佳答案吧~ qiuyouzhi 发表于 2020-4-29 17:16
那就设个最佳答案吧~
……对不起哈,已经设置完了不能更改了,下次看见您给您。晚上还有作业,如果您不建议的话,期待着您来帮助我😊 Juniorboy 发表于 2020-4-29 17:21
……对不起哈,已经设置完了不能更改了,下次看见您给您。晚上还有作业,如果您不建议的话,期待着您来帮 ...
{:10_256:}没事,给zltzlt吧
他马上1000个最佳了(三个月连续) qiuyouzhi 发表于 2020-4-29 17:22
没事,给zltzlt吧
他马上1000个最佳了(三个月连续)
{:10_297:}下次一定给您(如果您出现的话),其实每次最佳我都不知道怎么给,都是想帮我,{:10_243:} Juniorboy 发表于 2020-4-29 17:24
下次一定给您(如果您出现的话),其实每次最佳我都不知道怎么给,都是想帮我,
{:10_256:}帮到就好,最佳不重要
页:
[1]