对变量的赋值没有效果?

当我这样做: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; 

然后它没关系,但如果你把它与其他东西结合起来,那就会