来自GManNickG的提问
What is the “-->” operator in C++?
在论坛comp.lang.c++.moderated上看了Hidden Features and Dark Corners of C++/STL这篇文章,下面的代码能够在Visual Studio 2008和G++ 4.4上编译且成功运行,我震精了。
代码如下:
#include<stdio.h>
int main(){int x =10;while(x -->0)// x goes to 0{ printf("%d ", x);}
}
我把这段代码看作是C语言写成的,因为使用GCC也能正常编译。那么问题来了,操作符-->
在C语言标准的何处有定义呢?
来自Potatoswatter的最佳回答
-->
根本不是操作符。事实上它是两个独立的操作符:--
和>
。
条件语句递减x
,同时返回x
的原始值(不是减1之后的值),用这个原始值跟0
作比较。
为了更好的理解,该语句可以这样写:
while( (x--) > 0 )