给出以下代码:
#include<stdio.h>
int main()
{
int a=1;
switch(a)
{ int b=20;
case 1:
printf("b is %d\n",b);
break;
default:
printf("b is %d\n",b);
break;
}
return 0;
}
您认为这两个b
声明中printf
的价值是什么?当然,它不是20。
答案 0 :(得分:6)
在C ++中,代码格式不正确。案例标签1
跨越b
的初始化
在C99中它有效但调用未定义的行为。