看完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);
}
}
输出:
9 8 7 6 5 4 3 2 1 0
我假设这是 C,因为它也适用于 GCC。这在标准中是哪里定义的,又是从哪里来的?
最佳答案
-->
不是运算符。它实际上是两个独立的运算符,--
和 >
。
条件的代码递减x
,同时返回x
的原始(未递减)值,然后将原始值与0
进行比较使用 >
运算符。
为了更好地理解,语句可以写成如下:
while( (x--) > 0 )
关于c++ - C++ 中的 "-->"运算符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1642028/