如果一个变量作为常量传递,它会通过引用传递?
问题描述:
如果我将一个变量作为常量传递,它会自动通过引用传递?如果一个变量作为常量传递,它会通过引用传递?
procedure foo(const x : integer)
我可以参考已经传递变量是这样的:
procedure foo(var y : integer);
理想我想要的东西像下面的代码:
procedure foo(const var z : integer)
答
const
不保证该值实际上是通过引用传递的。
的Free Pascal支持
procedure foo(constref z : integer);
为此,Z为总是在这种情况下引用传递。我不知道其他pascal编译器中有类似的东西。
出于好奇,最近的Delphi编译器(自Delphi XE4以来)使用['[Ref]'](http://docwiki.embarcadero.com/RADStudio/XE4/en/Parameters_%28Delphi%29#Constant_Parameters)装饰器为了这。你可以在那里写信'程序foo(const [Ref] Z:Integer);'。 – TLama 2014-12-12 03:59:38