{
int a=0,b=1,c=0,d=20;
if(a) d=d-10;
else if(!b)
if(!c) d=15;
else d=25;
printf("d=%d\n",d)
}
{
int a=0,b=1,c=0,d=20;
if(a) d=d-10;
else if(!b)
if(!c) d=15;
else d=25;
printf("d=%d\n",d)
}
显示:
d=20
什么语句也没执行,直接显示d的值。
开始 int a=0,b=1,c=0,d=20;
a=0 执行 if(!b) !b=!1=0 就执行 d=25
结果就是:25
d=20
原因是该程序省略了一些{}
完整的程序应该是这样的结构
int a=0,b=1,c=0,d=20;
if(a)
{
d=d-10;
}
else if(!b)
{
if(!c)
{
d=15;
}
else
{
d=25;
}
}
printf("d=%d\n",d)