来自未初始化变量的值来自何处?

时间:2015-01-10 17:18:12

标签: c++ variables garbage

声明我喜欢的局部变量时:

int i;

你使用这个变量,你会得到未定义的行为,因为我还没有初始化。但我持有一个值,一个“垃圾”值,这个值来自哪里?它来自记忆中的随机位置吗?

2 个答案:

答案 0 :(得分:7)

你不知道,你不知道。未定义的行为意味着任何事情都可能发生。

也就是说,在大多数实现的实践中,大多数时候int i;将在堆栈上保留sizeof(int)个字节(通常在主内存中某处),所以i的值将是此时堆栈上发生的任何内容。

但不要依赖它,并记住这并非总是如此。

答案 1 :(得分:2)

以前在& i记忆中的内容。