一般地,无论是全局变量还是局部变量,如果它是非指针类型的,则声明后被自动分配内存。如果是全局变量,还会被初始化为0:数值类型的为0,布尔类型的为False,字符的为‘’;如果是局部变量,则不会被初始化,因此,它的值是不确定的(取决于别的程序对这块内存的操作)。对于非Variant和File类型的全局变量,还可以在声明是指定初始值(如:var I: integer = 7),但是对任何的局部变量都不可以这么做。
如果变量是指针类型的,则不会被自动分配内存。如果它是全局的,则其初始值是nil,表示还没有指向;如果是局部的,尽管没有被分配内存,但是会随机地指向一个地址,因此值不是nil。