最佳答案
该声明的措辞可以更好。您需要首先进行一些观察。
范围是一种语义构造。它定义了可以在何处使用名称(变量、类型、函数等)。以及该名称所指代的内容。
范围有不同类型。相当多的只是编译时的事情。例如,命名空间和类也定义了范围。
函数也定义作用域,但函数是“运行”的。因此,它们的上下文必须具有某种运行时表示形式。
递归需要调用相同的函数,但每次重入调用的函数上下文必须不同。
最后一点就是为什么经常使用“调用栈”来实现函数调用。每个堆栈记录都与正在运行的函数的上下文相关。因此,函数作用域中的名称将引用调用堆栈上的项目。
关于c++ - 范围是否存储在堆栈中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47177856/