Chinaunix首页 | 论坛 | 博客
  • 博客访问: 527143
  • 博文数量: 96
  • 博客积分: 2102
  • 博客等级: 上尉
  • 技术积分: 1695
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:12
文章分类

全部博文(96)

文章存档

2014年(2)

2012年(94)

分类: C/C++

2012-09-26 15:11:39

   今天在调整代码的时候为了将代码看起来更加整齐,我就把变量的定义放入了一个case中,就方发现报错了。

错误代码:

点击(此处)折叠或打开

  1. #include<iostream> 
  2. int main()
  3. {
  4.   int a =0;
  5.   switch(a)
  6.   {
         case 1:
  7.        int c =8;
  8.        std::cout<<"c="<<c<<std::endl;
  9.        break;
  10.      case 2:
  11.        std::cout<<"a = "<<a<<std::endl;
  12.        break;
  13.        default:
  14.        break;
  15.    }
  16.   return 0;
  17.  }
错误:
 

原因:对于一个变量的作用域是在一个花括号内的( {} ) 的,所以对于以上情况来讲 变量 c 的作用域在于switch 整个括号中,如果 a 的值为 不等于 1 时,对于c 的定义就会跳过,其实我们真正的想法是--
变量 c 只在 case 1 情况下有效,所以在这个范围内加一个花括号。

更正:

点击(此处)折叠或打开

  1. case 1:
  2. {
  3.   int c =8;
  4.   std::cout<<"c="<<c<<std::endl;
  5.   break;
  6.  }

再次编译--通过!




阅读(2306) | 评论(0) | 转发(1) |
0

上一篇:cgicc结构分析

下一篇:跨域访问

给主人留下些什么吧!~~