Nein, CONST übergibt, bei Typen über 64 Bit und bei dieser typlosen Variante (genauso wie VAR) eine Referenz.
Delphi-Quellcode:
procedure Test(const Buffer; X: Boolean = False);
type
TArr = array[0..9] of Char;
begin
if X then
ShowMessage('$' + IntToHex(NativeInt(@Buffer), 8) + ' "' + TArr(Buffer)[5] + '"')
else
ShowMessage('$' + IntToHex(NativeInt(@Buffer), 8));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
B: array[0..0] of Byte;
S: String;
begin
ShowMessage('$' + IntToHex(NativeInt(@B), 8));
Test(B);
S := '123456789';
ShowMessage('$' + IntToHex(NativeInt(@S[3]), 8));
Test(S[3], True);
Und es ist nicht einfach nur Kosmetik/Schönheit, sondern auch
Symetrie ... ich übergebe eine Zeile weiter vorne diese Variable auch als CONST (Stream.WriteBuffer, wo dieses übrigens funktioniert) und würde es hier gerne genauso aufrufen =
einheitlicher Code