为什么printf使用浮点和整数格式说明符打印随机值

我在64位计算机上写了一个简单的代码

int main() {
    printf("%d", 2.443);
}

So, this is how the compiler will behave. It will identify the second argument to be a double hence it will push 8 bytes on the stack or possibly just use registers across calls to access the variables. %d expects a 4 byte integer value, hence it prints some garbage value.

有趣的是,每次执行此程序时,打印的值都会更改。那到底是怎么回事?我希望它每次都打印相同的垃圾值,而不是每次都打印不同的值。