今天在调整代码的时候为了将代码看起来更加整齐,我就把变量的定义放入了一个case中,就方发现报错了。
错误代码:
- #include<iostream>
- int main()
- {
- int a =0;
- switch(a)
- {
case 1: - int c =8;
- std::cout<<"c="<<c<<std::endl;
- break;
- case 2:
- std::cout<<"a = "<<a<<std::endl;
- break;
- default:
- break;
- }
- return 0;
- }
错误:
原因:对于一个变量的作用域是在一个花括号内的( {} ) 的,所以对于以上情况来讲 变量 c 的作用域在于switch 整个括号中,如果 a 的值为 不等于 1 时,对于c 的定义就会跳过,其实我们真正的想法是--
变量 c 只在 case 1 情况下有效,所以在这个范围内加一个花括号。
更正:
- case 1:
- {
- int c =8;
- std::cout<<"c="<<c<<std::endl;
- break;
- }
再次编译--通过!
阅读(2302) | 评论(0) | 转发(1) |