1. ホーム
  2. c++

[解決済み】C/C++の"-->"演算子とは何ですか?

2022-03-17 23:10:56

質問

読み終えて 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

GCCでも動くので、これはC言語だと思うのですが。これは標準のどこで定義されているのでしょうか、またどこから来ているのでしょうか?

どのように解決するのですか?

--> は演算子ではありません。実際には2つの別々の演算子です。 --> .

コンディショナルコードのデクリメント x を返しながら x の元の値 (デクリメントされていない値) と比較し、元の値を 0 を使用しています。 > 演算子を使用します。

よりよく理解するために、この文は次のように書くことができる。

while( (x--) > 0 )