das Array of Char wird als PChar mit maximaler Länge angesehn
und
const1 = 'HALLO'#0#0#0;
wird als String übersetzt und beim String gehören die #0#0#0 mit zu den gültigen Daten
[add]
Delphi-Quellcode:
var
s: String;
begin
foo := const1;
s := 'HALLO'#0#0#0;
WriteLn(foo = s);
s := PChar('HALLO'#0#0#0);
WriteLn(foo = s);
foo := const2;
s := 'HALLO'#0#0#0;
WriteLn(foo = s);
s := PChar('HALLO'#0#0#0);
WriteLn(foo = s);