【发布时间】:2021-12-15 17:37:54
【问题描述】:
这是我的代码。为什么 C 会打印一个像 3321856 这样的随机数? 我知道这是因为它是一个空变量,但为什么是这个数字?是随机的还是有什么原因的?
#include <stdio.h>
void main()
{
int a;
printf("%d", a);
}
【问题讨论】:
-
a没有被初始化为任何东西,所以它的值是不确定的。 -
您希望打印什么,为什么?
-
为什么是这个号码?是随机数吗?
-
正式地说,它是不确定的。在实践中,它可能是某个先前操作留下的寄存器或内存位置的内容。预测它的价值可能难,也可能不难,这取决于你对程序的了解程度以及它是如何编译的。在任何有用的概率意义上,它肯定不是随机的。
标签: c integer initialization printf undefined-behavior