假设我正在用C
. 如果我有一个未初始化的变量number
,我不知道它的值是什么。但...
那个随机值是什么?我在内存转储中有什么?是不是因为试图读取一个地址却什么也没有出来?
我试图调试我的程序,但我还是个新手,所以很容易迷路。此外,如果我添加一个zerowillcome
变量(参见代码 2),我的number
值将不再是随机的:它将是0
. 我不明白为什么会发生这种情况,但我认为这与将顺序变量推入堆栈有关。我对吗?有人可以一步一步地想象我到底发生了什么吗?
PS:那些其他变量在那里,因为这是其他代码的片段,所以我不知道删除它们是否可以改变应用程序行为:我的注意力被添加zerowillcome
变量引起的奇怪行为所吸引。
代码 1:
int main (int argc, char *argv[])
{
int number, var1, var2, tmp, tmp2;
printf("number: %d", number); // <- insert random number here
return 0;
}
代码 2:
int main (int argc, char *argv[])
{
int number, var1, var2, tmp, tmp2, zerowillcome;
printf("number: %d", number); // <- 0 !!!
return 0;
}