-9

どういうわけか見落としていた初歩的なプログラミングの質問が出されました。

int a = 2, b = 3, c = 5;

if (!a == b)
    c = a--;
else
    c = ++b;

printf("%d %d %d\n", a, b, c);

出力は 2 4 4 のはずだと思います。誰でも私が正しいか間違っているかを確認できますか?なぜですか?

4

2 に答える 2

1

あなたは!a正しいです。00 == b0

したがって、 とc = ++bが得b = 4られc = 4ます。はa変更されません。

于 2013-06-23T15:57:03.697 に答える
0

の条件!よりも優先順位が高いため、 false になります。したがって、else が実行され、b と c の両方が 4 に設定されます。あなたは正しかったです。==if((!a) == b) -> (0 == 3)

于 2013-06-23T15:54:31.367 に答える