可以切换语句使用变量吗?

Mic*_*ani 4 c++ switch-statement

下面是声明两个int变量并尝试在switch语句中使用它们的代码.这是C++中的合法操作吗?如果没有,为什么不呢?

int i = 0;
int x = 3;
switch (i)
{
    case x:
    // stuff
    break;

    case 0:
    // other stuff
    break;
}
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 6

case标签必须是整型常量表达式,所以你的例子是无效的.但如果x改为:

const int x = 3;
Run Code Online (Sandbox Code Playgroud)

那么它是有效的.