C语言 这是未定义的行为吗?为什么这段代码返回一个看似随机的整数?[已关闭]

von4xj4u  于 2022-12-29  发布在  其他
关注(0)|答案(3)|浏览(99)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

1小时前关闭。
Improve this question
我正在看下面的C代码:

#include <stdio.h>
#include <stdlib.h>

void main(){
    int a;
    printf("%d", a);

}

我想知道为什么这段代码打印了一个看似随机的数字。我的第一个猜测是这是一个未定义的行为,但我可能是错的。

gwbalxhn

gwbalxhn1#

因为你没有给a赋值,所以每次运行代码时,它都是垃圾值.

mepcadol

mepcadol2#

因为整数“a”是未定义的,它给出的垃圾值本质上是随机的。(在某些情况下,如果没有给定值,这个程序可能会崩溃)。

t9aqgxwy

t9aqgxwy3#

是的,这是未定义的行为。
此问题似乎与Reading uninitialized variable重复

相关问题