(100)一个与初始化有关的问题!
今天看书,遇到了一个挺有趣的程序:
#include<iostream.h>
void main()
{
int m=5;
if(m==5)
goto abc;
//企图用goto语句跳过变量n的定义。
int n;
abc:
cout<<"m="<<m<<",n="<<n<<endl;
}
本以为该程序是不能通过编译的,可是它在VC++6.0中成功运行了,行运结果为:
m=5,n=-858993460
后来,我修改了一下:把int n;改为int n=10;再运行却失败了。错误是:initialization of 'n' is skipped by 'goto abc'。
为什么把int n;改为int n=10;就不能运行呢?