为什么我得到垃圾值作为输出?

Why I'm Getting Garbage Value as output?

为什么输出不是10甚至5?

void main()
{
    int a=10;
    goto here;
    {
    int a=5;
    here:
        printf("%i",a);
    }
}

输出:垃圾值

因为有两个 a 变量,第二个在打印语句中遮盖了第一个。由于您跳过了它的初始化,因此输出是垃圾。

请注意,在 C++ 中跳过过去的初始化是一个编译器错误,在 C 中,您只会得到您观察到的未初始化的值。

还有,是int main(),不是void main()