Program ConstTest;
Const constVar = 1;
Begin
constVar := 3;
WriteLn(constVar);
End.
很明显,上面的代码不会编译,因为改变常量的值是不对的。 然而,下面的代码编译,将返回 “1:5:3;”,即使数组是一个const:为什么Pascal常量数组实际上不是常量?
Program ConstTest;
Const constArr:Array [1..3] Of ShortInt = (1,2,3);
Var i:ShortInt;
Begin
constArr[2] := 5;
For i:=1 To 3 Do WriteLn(constArr[i],'; ');
End.
那么,是什么原因导致这种行为?为什么常量不是一个常量?
我为Win32使用FreePascal编译器2.2.0。
另请参阅http://stackoverflow.com/questions/48934/in-delphi-7-why-can-i-assign-a-value-to-a-const和http://stackoverflow.com/questions/2714365 /德尔福所有常数,是常数,但是,一些 - 是 - 更常高于其他人。 – 2010-07-13 21:57:47