#include<stdio.h>
int main()
{
int i;
scanf("%d",&i);
switch (i)
{
case 1:
int y= 0;
printf("%d",y);
break;
}
scanf("%d",&i);
int main()
{
int i;
scanf("%d",&i);
switch (i)
{
case 1:
int y= 0;
printf("%d",y);
break;
default:
break;}
scanf("%d",&i);
}
---------------------------------------------------报错
跳过了变量的初始化,
在case 1中定义了变量temp,在这个程序中,直到遇到switch的“}”右花括号,temp的作用域才终结,也就是说 在default 分支中 变量temp依然是可以访问的。考虑这样一种情况,如果switch匹配了default ,这样case 1的代码被跳过了,那么temp就没有定义,如果此时在default 的代码中访问了temp,程序会崩溃的。