C++中的'-->'运算符是什么意思,为什么它能工作?
大家好!我正在学习C++,在网上偶然发现了一段奇怪的代码。里面写着类似这样的内容:
```cpp
int x = 10;
while (x --> 0) {
printf("%d ", x);
}
```
这段代码竟然能运行!它输出从9到0的数字。我一开始以为这是什么我漏掉的新运算符“箭头”(arrow operator)。但后来我尝试把`x --> 0`写成不带空格的`x-->0`——也能运行。而`x->0`却不行,会报编译错误。
我查了C++文档,没有找到任何关于`-->`运算符的提及。C++标准中有`->`(通过指针访问成员)、`--`(递减)运算符,但没有`-->`。这怎么可能?是编译器的把戏还是标准的特点?为什么`while (x --> 0)`这段代码能编译并运行,尽管这个运算符并不存在?在真实项目中这样写安全吗?希望能得到解释!
P.S. 编译器版本:GCC 11.2,标准C++20。
<<>>