关于switch中定义变量的问题

首先引用C++ primer中的一句话:C++不允许跨过变量的初始化语句,直接跳到该变量作用域的另一个位置。

然后上代码:

#include <iostream>

using namespace std;
//switch练习:C++不允许跨过变量的初始化语句,直接跳到该变量作用域的另一个位置
int main()
{

    cout << "please Input a number:";

    int num = 0;

    while(cin >>num)
    {
        switch(num)
        {
        case 0:
        {//这里不加中括号是不对的
            int b =0;
            break;
        }
        case 1:
            int c;//没有进行初始化就是正确的
            break;
        case 2:
            break;
        default:
            break;
        }
    }


    return 0;
}

主要是作用域和开始那句话的理解,就不会出错了。

猜你喜欢

转载自blog.csdn.net/qq_37468954/article/details/80279003