为什么下一个代码的输出是2 1 2
?
#include "iostream"
int main(int argc, const char *argv[])
{
int i = 0;
std::cout << i << std::endl << i++ << std::endl << ++i << std::endl;
return 0;
}
因为 firsti
等于 2 但不为零,这意味着cout
先评估整个类似的然后打印(不是逐个部分)。如果是这样,那么第一个值应该是 1,而不是 2,因为应该在打印后i++
递增。i
你能澄清一下吗?
编辑:
下一个代码的输出是2 2 0
.
#include "iostream"
int main(int argc, const char *argv[])
{
int i = 0;
std::cout << i << std::endl << ++i << std::endl << i++ << std::endl;
return 0;
}
为什么?