回答

收藏

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

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

看完隐藏的功能和C     / STL的暗角上comp.lang.c  .moderated,我完全惊讶的是,下面的代码片段被编译成两个Visual Studio 2008和G     4.4的工作。
( A# l) p+ |) C这是代码:
2 w* T, X3 ~' \1 h3 ?% V
    6 G# F$ t: Z  _
  • #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' O* @) o# x% S: h/ o$ X3 V
这是 C,因为它也适用于 GCC。这个标准在哪里定义,它来自哪里?( }% ]! f2 o8 I; d, ?
                                                               
, K5 X$ [1 [1 d4 [' _    解决方案:                                                                - V5 W7 j. E' s$ t. s1 r
                                                                -->不是运营商。它实际上是两个独立的操作符,--和>。
6 y# T: H* S& d/ y" q4 h" Y条件代码减少x,同时返回x原始值(未递减),然后使用原始值和0>比较运算符。
( z4 v3 ]3 T" h" u8 j为了更好地理解,这个句子可以写如下:3 V1 P  ]$ S2 F2 L" [
    while( (x--) > 0 )
    8 q/ J5 l& i0 P& L, U) Y# q& w
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则