Cの構文トラップ:他の原因「ハング」問題

まず、「ぶら下がり」の問題は、他の原因
はじめにマッチング場合とそうでない、シンプルなのに、非常に簡単で、いくつかの比較的単純な不注意なミスを作るために:。
1.たとえば、所望の機能を達成するために:もし= 1およびb =プリントアウト「= 1、B = 1 」 「!= 1」1、プリントアウトは、次いで一つのコードに等しくない場合次のように:

    int a = 1;
    int b = 1;
    if(a)
            if(b)
                    printf("a=1, b=1\n");
    else
            printf("a!=1\n");

プログラムの上記の結果:

A = 1、B = 1

= 0に初期化するときただし、次のように:

    int a = 0;
    int b = 1;
    if(a)
            if(b)
                    printf("a=1, b=1\n");
    else
            printf("a!=1\n");

次のようにそれは、それはゼロBに初期化されるならば、1に初期化され、実行時の表示は何も見つかりませんでした。

    int a = 1;
    int b = 0;
    if(a)
            if(b)
                    printf("a=1, b=1\n");
    else
            printf("a!=1\n");

結果:

!= 1

分析:if文であれば()我々がする必要がありますので、他の言うことです他の場合ではない場合は()のマッチングが、(b)の場合は、その最も近いと一致してしまうため、より多くの結果よりもあるでしょう{}プラス後者ワンピース他以下の(a)は、すなわち、利用可能な場合であり、コンパイラに指示します。

    int a = 1;
    int b = 0;
    if(a)
{
            if(b)
                    printf("a=1, b=1\n");
}
    else
            printf("a!=1\n");
公開された24元の記事 ウォン称賛27 ビュー10000 +

おすすめ

転載: blog.csdn.net/gyyu32g/article/details/86429265