大家都知道在c++中申请变量并初始化是一个有效保证代码正确的好习惯。但是今天发现一个有趣的地方:
我在申请b后直接输出b,看如下代码:
int main(int argc, char **argv)
{
int b ;
cout << b << endl;
int *a = 0;
a= &b ;
system("pause");
return 0;
}
这个时候系统会崩溃。提示为b没有被初始化。
但是如果改变下顺序,我申请一个指针指向了b的地址,如下代码:
int main(int argc, char **argv)
{
int b ;
int *a = 0;
a= &b ;
cout << b << endl;
system("pause");
return 0;
}
这时候系统就不会崩溃,但是b的值为随机数:-858993460。
这说明如果申请b后随便用一下b的地址,那么再输出b的值就不会崩溃,不过b的值是个随机数。
我只是发现这种有趣的现象,如有不对敬请交流。