黑马程序员技术交流社区
标题:
作用域的问题,求解!!
[打印本页]
作者:
Zeus-S
时间:
2015-1-25 19:39
标题:
作用域的问题,求解!!
比如if语句里
if(6>5){
int a =10;
}
printf("%d",a);
看视频里老师说以上是错误的,因为a的作用域只在大括号里,所以上述错误。但是
在switch里
int a=10
int b=10
switch(a){
case10:
printf("A\n");
b++;
case5:
printf("B\n");
b++;
case0:
printf("c\n");
b++;
break;
default:
printf("D\n");
break;
}
printf("%d",b);
以上结果为,打印出ABC以及b的值为13,,,ABC我可以理解的,但是b的值不应该是10么?b++的作用域不该是在switch里面么?在break退出语句之后b++是不是应该也就没有了?因为上述两个作用域的问题我纠结死了,望大神解释一下,通俗一点,本人零基础,所以都还是很不熟悉的{:2_45:}
作者:
从今以后
时间:
2015-1-25 21:47
b++其实是定义在switch外面的int b,如果在switch里定义int b,才局限于switch。
作者:
Zeus-S
时间:
2015-1-26 00:13
从今以后 发表于 2015-1-25 21:47
b++其实是定义在switch外面的int b,如果在switch里定义int b,才局限于switch。
哦哦哦,好通俗的说法,一看就懂,多谢多谢,因为视频里老师也没扯到,所以我就打结了。:handshake
作者:
王德亮
时间:
2015-1-26 08:02
进来看看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2