看了 Hidden Features and Dark Corners of C++/STL 中关于 comp.lang.c++.moderated
的介绍后, 很好奇以下代码片段可在Visual Studio 2008和G ++ 4.4中编译通过。
示例代码:
#include <stdio.h> int main() { int x = 10; while (x --> 0) // x goes to 0 { printf("%d ", x); } }
查找资料后发现–>不是独立的运算符。实际上 它是两个独立的运算符--
and >
while条件是递减x,同时返回x的原始(未递减)值,然后使用>运算符将原始值与0进行比较。
为了更好地理解,该语句可以写成下面的样子:
while( ( x-- ) > 0 )