相关疑难解决方法(0)

绕过定义时如何使用变量?

在我看来,定义总是意味着存储分配.

在以下代码中,int i在程序堆栈上分配一个4字节(通常)存储并将其绑定到i,i = 3并将3分配给该存储.但是因为goto,定义被绕过,这意味着没有分配存储空间i.

我听说局部变量在函数的入口处(f()在这种情况下)分配在它们所在的位置,或者在定义点处.

但无论哪种方式,如何i在尚未定义的情况下使用它(根本没有存储空间)?执行时分配给值3的位置在哪里i = 3

void f()
{
    goto label;
    int i;

label:
    i = 3;
    cout << i << endl; //prints 3 successfully
}
Run Code Online (Sandbox Code Playgroud)

c++ scope variable-declaration

36
推荐指数
4
解决办法
1038
查看次数

标签 统计

c++ ×1

scope ×1

variable-declaration ×1