关于case语句中的变量声明,定义语句
希望高手指点
switch(ch)
{
case'a':
int a = 0;
break;
case'b':
cout << "ok" << endl;
break;
}
编译会报错,
小弟理解如此:在一个case语句中的变量声明,定义在整个switch语句可见,但是对于case‘b’分支执行的时候,只能a的声明可见,而a定义语句由于case‘a’未执行,所以这没找到,所以报错,是这样的么?
如果是的话,a的定义实在运行时根据执行哪个分支才去查找的么,为什么不是编译的时候?
或者都不恰当,希望高手指教,谢谢各位大哥!