为什么在我们在某些语言中使用变量之前需要声明变量,而在其他语言中却没有?

时间:2014-04-15 17:35:17

标签: java python

如何在Python与Java中为变量声明分配内存?如果没有编译步骤,解释语言如何知道变量需要多少内存?

1 个答案:

答案 0 :(得分:3)

在可用之前,必须为变量分配一个内存位置然后进行初始化 - 无论是JavaPython还是Logo

声明意味着使用特定的代码片段来生成该变量,并使用(以Java为例)

int i;
Person p;

这些是声明的,但未初始化。它们现在被分配在内存中的位置 - 在某些语言中,它们可能在位置和大小上都在不断变化。但无论如何,现在内存中存在一些物理位置,运行时环境可以查询,检索变量(指向它的间接指针或实际位置本身)。

现在它有一个空的“盒子”,它必须被填充,也就是说必须“初始化”:

i = 3;
p = new Person();

现在盒子里有一些具体的东西。它已经可以使用了。在初始化之前尝试使用它将在NullPointerException中生成(在Java中)。

某些语言要求您声明变量,以便为其显式分配内存(位置和/或大小)。有些语言会为您执行此内存分配。正如您对问题和答案的评论中所述,存在很多变化。