对变量的赋值没有效果?
当我这样做:count = ++ count; 为什么我会收到警告 – 对变量计数的赋值没有效果? 这意味着计数递增,然后分配给自己或其他东西? 它和++ count一样吗? count = count ++会发生什么? ? 为什么我没有收到警告呢?
count++
和++count
都是count=count+1
缩写。 赋值是内置的,所以没有必要再次分配它。 count++
(也称为postfix )和++count
(也称为前缀 )之间的区别在于++count
将在该行的其余部分之前发生,而count++
将在该行的其余部分之后发生。
如果你要拆分count=count++
,你最终会得到这个:
count = count; count = count+1;
现在你可以看到为什么postfix不会给你一个警告:实际上最后会改变一些东西。
如果你拆分count=++count
,你最终会得到这个:
count = count+1; count = count;
如您所见,第二行代码是无用的,这就是编译器警告您的原因。
打破声明你基本上写道:
++count; count = count;
正如你所看到的,count = count什么都不做,因此警告。
++运算符是以下count = count + 1
的快捷方式。 如果我们打破你的行count = ++count
它会响应count = count+1 = count
为了扩展一点,count ++是postfix。 它发生在其他操作之后,所以如果你做了类似的事情
int a = 0, b = 0; a = b++;
a将为0,b为1.但是,如果你这样做,则++ count是前缀
int a = 0, b = 0; a = ++b;
然后a和b都是1.如果你这样做
count++;
要么
++count;
然后它没关系,但如果你把它与其他东西结合起来,那就会