c ++在switch语句中定义变量 - 使用/不使用初始化定义

时间:2016-08-05 06:18:25

标签: c++ c switch-statement

我知道很多关于这个主题的问题,但我没有找到答案。

struct message
{
    int  myint;
};

int main(void)
{
  switch(1)
  {
    case 0:
      break;
    case 1:
      int i; // this is fine, but int i = 10; is compile error
      break;
    default:
      break;
  }
  return 0;
}

从逻辑上讲,为什么定义变量并用一些值初始化它不仅仅是定义变量用于'案例标签'?

1 个答案:

答案 0 :(得分:1)

要在C ++中的switch语句中定义变量,您需要使用大括号:

int main(void)
{
  switch(1)
  {
    case 0:
      break;
    case 1:
    {  //added brace
      int i=10;
      break;
    }  //added brace
    default:
      break;
  }
  return 0;
}

here the link to C++ shell