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