后缀和前缀都比按位左移具有更高的运算符优先级,但是以下内容将打印出不同的结果。

int testValue = 1;
std::cout << ++testValue; //prints 2
//saw it as std::cout << (++testValue);

testValue = 1;
std::cout << testValue++; //prints 1
//thought it was std::cout << (testValue++);

为什么增加第二个示例中所示的后缀后才打印1?我以为它与testValue的绑定(bind)更紧密,就像在增量前缀的情况下一样,所以我认为在使用std::cout打印之前先将其递增。

最佳答案

<<不是按位运算符,而是insertion operatorcplusplus引用:


testValue = 1;
std::cout << testValue++; //prints 1

发布增量表示在读取变量后完成增量。

10-08 00:31