如果一个变量作为常量传递,它会通过引用传递?

如果一个变量作为常量传递,它会通过引用传递?

问题描述:

如果我将一个变量作为常量传递,它会自动通过引用传递?如果一个变量作为常量传递,它会通过引用传递?

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编译器中有类似的东西。

+0

出于好奇,最近的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