当我这样做时: count = ++ count; 为什么我会收到警告 - 对变量计数的赋值没有效果? 这意味着计数递增,然后分配给自己或其他东西? 它和++ count一样吗? count = count ++中会发生什么? ?为什么我没有收到警告?
答案 0 :(得分:14)
count++
和++count
都是count=count+1
的缩写。赋值是内置的,因此没有必要再次分配它。 count++
(也称为 postfix )和++count
(也称为前缀)之间的区别在于++count
之前会发生count++
该行的其余部分,count=count++
将在该行的其余部分后发生。
如果你要拆分 count = count;
count = count+1;
,你最终会得到这个:
count=++count
现在你可以看到为什么postfix不会给你一个警告:最后实际上有些东西被改变了。
如果你拆开 count = count+1;
count = count;
,你最终会得到这个:
{{1}}
正如您所看到的,第二行代码是无用的,这就是编译器警告您的原因。
答案 1 :(得分:3)
打破声明你基本上是在写:
++count;
count = count;
你可以看到count = count什么都不做,因此警告。
答案 2 :(得分:3)
++运算符是以下count = count + 1
的快捷方式。如果我们违反您的第count = ++count
行,则会回复count = count+1 = count
答案 3 :(得分:3)
要扩展一点,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;
然后没关系,但如果你把它与其他东西结合起来,那就