goto语句的使用问题
下面的语句是程序中的一段...
goto end;
int a=5;
end : ;
...
产生如下错误:
initialization of 'a' is skipped by 'goto end'
但是若goto 与 end: 语句之间没有变量的定义,只有其它语句时,就不会产生错误,
不知道为什么。
[code]
if (i == 1)
{
int a = 1;
}
else
{
int b = 1;
}
[/code]
也会报错一样。
如果我说得有错误,请大家指正。谢谢! 谢谢回复。但是我试过了,以下代码并没有错,
if (i == 1)
{
int a = 1;
}
else
{
int b = 1;
}
我又发现一种情况,当case 语句中的含有变量定义的代码段被包含在一对 大括号 中,或者 case 语句中的变量定义
出现在 switch-case 语句之前时,就没有错。
比如:
int a;
int i=8;
switch(i)
{
case 3:
a=5;
a+=4;
break;
case 8:
;
break;
}
就没有错误。
或者
int i=8;
switch(i)
{
case 3:
{
int a=5; //变量定义包含在大括号中
a+=4;
}
break;
case 8:
;
break;
}
也无错
页:
[1]
