switch case中不能定义变量 为什么?c/c++

能不能详细解释一下为什么?
case 1:
// int x=0;错
int x;
x=0;// 正常
break
case2
break
case3
int y=0; 正常。
break;
在 case 1 2 中时不可以初始化变量 报错会是 case被跳过。
。但是定义后在赋值是没问题(至少我测试后可以运行)

那么为什么。希望有老师帮忙一下 (是在不使用{}的情况下)
我只是要知道为什么?

最后一个case中 是可以初始化 这个没问题!

第1个回答  推荐于2018-03-20
那是因为这个规定是为了避免出现下面的这种情况:
case 1:
int x;
case 2:
x = 0;
在最后一个case语句中定义是不会出现上面这种情况的本回答被提问者和网友采纳
第2个回答  2012-06-20
那是因为这个规定是为了避免出现下面的这种情况:
case 1:
int x;
case 2:
x = 0;
在最后一个case语句中定义是不会出现上面这种情况的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网