8

当我这样做时:count = ++count; 为什么我会收到警告 - 分配给变量 count 无效?这意味着计数增加,然后分配给它自己或其他东西?它和 ++count 一样吗?count = count++ 会发生什么;? 为什么我没有收到警告?

4

4 回答 4

14

count++并且++count都是count=count+1. 分配是内置的,因此没有必要再次分配它。count++(也称为postfix)和++count(也称为prefix)之间的区别在于,++count它将发生在该行的其余部分之前,并将发生在该行count++的其余部分之后。

如果你要拆开count=count++,你会得到这样的结果:

    count = count;
    count = count+1;

现在您可以看到为什么 postfix 不会给您警告:最后实际上正在更改某些内容。

如果你拆开count=++count,你会得到这个:

    count = count+1;
    count = count;

如您所见,第二行代码没有用,这就是编译器警告您的原因。

于 2012-07-24T21:25:53.183 回答
3

打破你基本上是在写的陈述:

++count;
count = count;

如您所见, count=count 什么都不做,因此发出警告。

于 2012-07-24T21:27:21.703 回答
3

稍微扩展一下,count++ 是后缀。它发生在其他操作之后,所以如果你做了类似的事情

int a = 0, b = 0;
a = b++;

a 为 0,b 为 1。但是,如果你这样做了,++count 是前缀

int a = 0, b = 0;
a = ++b;

那么 a 和 b 都将是 1。如果你只是这样做

count++;

或者

++count;

那么没关系,但如果你将它与其他东西结合起来,它会

于 2012-07-24T21:34:11.933 回答
3

++ 运算符是以下的快捷方式count = count + 1。如果我们打破你的线路count = ++count,它会回应count = count+1 = count

于 2012-07-24T21:27:50.560 回答