C++未赋值的变量为啥是个随机数?

在c++中,我声明了一个变量,但是未给这个变量赋值,当我打印这个变量时,为啥是个不确定的数字? 这个数字从何而来? 计算应该不可能凭空造出一个数字出来,有人知道这个是为啥吗?

img

不管是哪种语言,你在声明一个变量的时候就会给它分配一个内存空间
而c语言一来比较古老,二来追求高效,所以在分配好内存之后并不会给内存清零
那么这个内存里到底残留了哪个程序执行之后遗留的数据就不确定了
有时候你同一段程序反复执行,这个随机值总是不变
而修改一点点代码重新编译,它又变了,就是因为分配的内存变了

没有赋值的时候,为了提高性能,C不会去刻意清除指向的内存,所以上面还是之前的值,由于不确认以前这个内存干嘛的,所以是随机的。

在函数体内,一般声明为静态变量才会默认有初始值,否则没有赋值的时候都是一个随机数。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^