VAR
y : INTEGER;
BEGIN
WriteLn(x); { this will raise a "Variable is NIL when it shouldn't be" error }
END.
修复方法是将变量x初始化或赋值。
VAR
x, y : INTEGER;
BEGIN
x := 0; { initialize x }
WriteLn(x); { this will print 0 }
END.
VAR
x : INTEGER;
PROCEDURE Foo(VAR x : INTEGER);
BEGIN
x := NIL; { this should not be done }
END;
BEGIN
x := 42; { initialize x }
Foo(x); { this will raise a "Variable is NIL when it shouldn't be" error }
WriteLn(x);
END.
修复方法是避免错误地修改变量x。
VAR
x : INTEGER;
PROCEDURE Foo(VAR x : INTEGER);
BEGIN
{ do something else with x }
END;
BEGIN
x := 42; { initialize x }
Foo(x); { this will not raise an error }
WriteLn(x);
END.
上一篇:变量在不同方法中地址出现问题。