一个小问题,以前没发现
现在发出来麻烦知道情况的朋友们解释一下具体情况
#include <iostream.h>
#include <fstream.h>
void main()
{
int n;
cin >> n;
switch(n)
{
case 1:
int a=1;
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
default :
exit(0);
break;
}
}
我理解的是case里不能定义并且初始化一个变量,vc的提示是
initialization of 'a' is skipped by 'case' label
当你定义的a生命期只能在case 1里,所以case 2和以后的 都就不能识别了
不知道还有没有更好的解释,谢谢
A:
方法1:定义在外面
int a;
switch(n)
{
case 1:
a=1
break;
case 2:
}
方法2:定义局部变量
switch(n)
{
case 1:
{
int a=1;
}
break;
case 2:
}
转自:http://topic.csdn.net/u/20071118/20/6E238B82-3C3A-496B-9DF5-9B66C1B11218.html