gpt4 book ai didi

c - 使用 goto 跳过范围变量初始化不会产生所需的输出

转载 作者:行者123 更新时间:2023-12-03 13:31:14 26 4
gpt4 key购买 nike

#include <stdio.h>

int main()
{
int a = 10;
goto inside;
{
int a = 20;
{
inside:
printf("%d",a);
}
}
}
为什么它打印输出为 0,而不是 10?即使它寻找最近的范围,即。 int a = 20没有明确执行。内存只包含 int a = 10;那为什么是 0 呢?

最佳答案

在点 printf打电话,名字a指的是该名称的第二个变量,即初始化为 20 的变量.外a , 初始化为 10 ,被隐藏。 printf 没有理由打印 10 .goto语句跳过内部 a 的初始化,所以它永远不会被初始化为 20 .为它分配了空间,但它的值是任意垃圾。 0正在打印的是内部a的内容.它可以是任何东西。

关于c - 使用 goto 跳过范围变量初始化不会产生所需的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63276974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com