まず、「ぶら下がり」の問題は、他の原因
はじめにマッチング場合とそうでない、シンプルなのに、非常に簡単で、いくつかの比較的単純な不注意なミスを作るために:。
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");