回答

收藏

C/C++ 中的“-->”运算符是什么?

技术问答 技术问答 405 人阅读 | 0 人回复 | 2023-09-11

看完隐藏的功能和C     / STL的暗角上comp.lang.c  .moderated,我完全惊讶的是,下面的代码片段被编译成两个Visual Studio 2008和G     4.4的工作。
; m. B& l- Z/ f这是代码:
* ]  U  U0 U% i8 r. n
    + q: @7 b" S& O# v
  • #include int main(){     int x = 10;    while (x --> 0) // x goes to              printf("%d ",x);  code]输出:[code]9 8 7  5 4 3 2 1 0
    3 H" V* u- M, `: O; B+ t
这是 C,因为它也适用于 GCC。这个标准在哪里定义,它来自哪里?5 w% _7 J0 T' H
                                                               
* @* u$ B/ Q/ I    解决方案:                                                                % [: m/ f1 o' A
                                                                -->不是运营商。它实际上是两个独立的操作符,--和>。1 i2 d! k( q/ S" ?
条件代码减少x,同时返回x原始值(未递减),然后使用原始值和0>比较运算符。+ W$ @/ d' _) k4 \( ^
为了更好地理解,这个句子可以写如下:
1 m* g4 C/ P1 U% e! M* Y. A
    while( (x--) > 0 )
      F9 g+ e) B! ?
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则