永发信息网

case后面的语句不加大括号为什么有时候能编译通过,有时候不能?

答案:1  悬赏:0  手机版
解决时间 2021-11-25 14:22
case后面的语句不加大括号为什么有时候能编译通过,有时候不能?
最佳答案
case后面的语句不需要加大括号,只要别忘了break就行。不过有的编程规范上会建议用大括号把case后面的语句括起来。
你说的“不能通过编译”,可能是下面这个原因。C/C++里规定,不能在case语句里定义局部变量。例如:

int a = 2;

switch (a)
{
case 1:
int c = 10;
break;

case 2:
break;

default:
break;
}
编译就会出错,原因是在case 1里定义了局部变量c。
而C/C++还有一个很有意思的规定,用{}包括的语句,认为是一个”语句块“,而在语句块里就能想干什么就干什么。
比如:
switch (a)
{
case 1:
{
int c = 10;
break;
}

case 2:
break;

default:
break;
}
这样就能通过编译了。
再多说两句废话。C/C++里这个用{}括起来的语句块,可以认为是一段完全独立的代码。比如:
int a = 2;

{
int a = 3;
}
这样完全没问题。而你要是把这对大括号删掉,就会出错。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何选择陶瓷气体放电管?
猛兽匣是国产还是进口的
5表哥满脸都是川字纹 如何是好
乌云上有晴空 初中作文 800字
落的成语有哪些成语大全
数控车车模数1的蜗杆螺距是多少
2015年易县人民法院办公家具招标
电脑steam安装不了
山东红太阳酒价格
《自相矛盾》出自哪?
小孩已经去世了,我发梦抱着他
以《警察意识》为题写一篇1000字的文章
简单美味下酒凉菜有哪些
86年国际和平年的纪念币的价值
难更与人同什么意思
推荐资讯
小白求助.17R4怎么更换SSD
DNF河北区,是电信区还是网通区
从铁西广场坐地铁去七院到哪里下地铁
谁找青岛城市人家装修的?都说说感觉如何,我
歇后语,七寸脚装三寸鞋,硬装
我要从印尼进海鲜类的东西到中国来卖,谁知道
如何在QQ空间里,找到空间内留言人的QQ号码?
现在县城里开个电脑店还有希望吗
看图精灵软件有什么好处?
平湖市全塘镇到上海坐什么车
南京江宁托乐嘉商业街有摄像头吗
西塘特色纪念品
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?