1

真正的简短和简单:

col = 10size = 8。然后执行以下操作:

col -= size--;

那么在对 col 进行减法之前,size 是否会被减去 7(所以 col = 3)?还是 col = 2?

谢谢

4

4 回答 4

4

size--产生 的先前值size,因此这等效于:

col -= size;
-- size;
于 2012-11-05T01:43:21.970 回答
1

size--递减大小并返回原始值(--size将递减并返回新值)。

右边的表达式在左边之前计算,所以右边的值会从 中减去col

如果col = 10size = 8,那么在 之后col -= size--size将等于 7 并且col等于 2。

于 2012-11-05T01:43:09.020 回答
1

++or--出现在操作数之后时,先返回值,然后递增/递减。如果之前出现,则相反。

于 2012-11-05T01:43:22.407 回答
1

答案应该是col = 8。如何?

col -= size--;是这样解释的:

在编译器的头脑中:

编译器:嗯,size--嗯?好吧好吧,什么col10? 而且size是.. 8?Fine 设置col2经过该操作然后递减size

如果是:col -= --size;它将是:

编译器:嗯,--size嗯?好吧好吧,什么size8? 将其设置为7.. 并且col10? 所以减法后的答案是col = 3。所以编译器认为它是老板。

于 2012-11-05T01:48:09.017 回答