C/C++ の '-->' 演算子とは何ですか? 質問する

C/C++ の '-->' 演算子とは何ですか? 質問する

読んだあとC++/STL の隠れた機能と暗い部分comp.lang.c++.moderated、次のスニペットが Visual Studio 2008 と G++ 4.4 の両方でコンパイルされ、動作したことに非常に驚きました。これは GCC でも動作するため、有効な C であると想定されます。

コードは次のとおりです:

#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

これは標準のどこで定義されていますか? また、どこから来たのでしょうか?

ベストアンサー1

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

条件内のコードは を減分しながらの元の(減分されていない)値xを返し、次に 演算子を使用して元の値と比較しますx0>

より理解しやすいように、この文は次のように書くこともできます。

while( (x--) > 0 )

おすすめ記事