在 switch-case 语句中,声明与初始化是无效的,但允许声明然后赋值。如以下代码片段所示。
从编译器端看,这两种类型的初始化有什么区别?以及为什么第一种类型的初始化无效而第二种类型的初始化有效。
switch(val)
{
case 0:
int newVal = 42; //Invalid
break;
case 1:
int newVal2; //Valid
newVal2 = 42;
break;
case 2:
break;
}