-11
int a = 8;

if (a==8)
    printf("x");
else 
    printf("y");

と等しいaのに8を出力しますy

4

1 に答える 1

5

上記のコードは常にx. コードが何か他のものを出力する場合、質問で重要な情報を省略しています。

それが何であるかを調べるには、これを試してください:

  1. #undef aの前に挿入int a = 8;して、コードを台無しにする C プリプロセッサ マクロがないことを確認します。

  2. 条件を入れ替えて、a本当に期待どおりかどうかを確認します。

    if( 8 == a )
    

    if( a = 8 )この小さなトリックにより、偶発的な割り当てバグ ( )も防止できます。

于 2012-08-14T07:43:08.703 に答える