大家都知道在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的值是个随机数。
我只是发现这种有趣的现象,如有不对敬请交流。
本文通过两个示例探讨了C++中变量初始化的重要性。当直接使用未初始化的局部变量时,程序可能会崩溃;但如果先获取该变量的地址,则程序不会崩溃,但变量的值为随机数。
15万+

被折叠的 条评论
为什么被折叠?



