为什么在获取字符串元素的地址时,类型地址运算符不适用?

时间:2017-09-18 08:17:19

标签: delphi

这个程序

{$T+}

var
  PA: PAnsiChar;
  PW: PWideChar;
  s: string;

begin
  PA := @s[1];
  PW := @s[1];
end.

编译。我希望{$T+}使用其中一个赋值将被编译器拒绝。在现代的Unicode Delphi中,我希望第一个赋值是无效的。

type-checked pointers的文档说:

  

@应用于{$T+}状态的变量引用时,结果的类型为^T,其中T仅与指向该类型的指针兼容变量。

为什么使用键入的地址似乎不适用于上面的代码?

0 个答案:

没有答案