后缀和前缀都比按位左移具有更高的运算符优先级,但是以下内容将打印出不同的结果。
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 operator
。 cplusplus引用:
testValue = 1;
std::cout << testValue++; //prints 1
发布增量表示在读取变量后完成增量。