那是因为这个规定是为了避免出现下面的这种情况:case1:intx;case2:x=0;在最后一个case语句中定义是不会出现上面这种情况的
一楼说的不是定义……定义的话,&表示定义的不是一个变量,而是一个引用,表示另一个变量的别名。定义一个引用时,必须显式用变量初始化,此后这个引用不能再重新赋值为另一个变量的别名。使用引用时,不使用*,&运算符,当成变量一样inta;int&b=a;b=5;//等价于a=5;