如何判断变量何时超出范围?

问题描述

在进行引用计数时,任务之一是“当变量超出范围时减少计数器”。但是我最大的问题是,在实现引用计数器的实现级别上,我无法确定变量何时超出范围。

能解释一下变量超出范围的所有(或主要)方法吗?

我是专门针对高级编程语言而不是玩具/入门性本科语言。我在想像JavaScript或Rust,它们具有闭包和嵌套函数定义(至少在JavaScript情况下)。另外,当您使用指针等并使用可变函数参数时。假设您将可变值传递给函数,然后使用该可变值返回闭包,诸如此类。

当变量超出范围时,您可以通过什么方式知道?如何组织得足够有条理,以便可以将其添加到参考计数器?

解决方法

当执行到达声明它的块的末尾时,局部变量超出范围。

全局/静态变量永远不会超出范围。

属于复合数据类型的字段(类/对象,结构/记录,数组等)的变量本身可能没有“作用域”,但如果有,则由范围确定。它们所属的复合数据类型实例。

如果试图在编译时对此进行分析,则使用符号表。有关编译器编写的教科书对此进行了介绍。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...