{现在这个函数并没有 var 前缀, 也就是说参数应该不会被修改的} function MyFun(p: PInteger): Integer; {PInteger 是 Integer 的指针类型} begin p^ := p^ * 2; Result := p^; end; {测试} procedure TForm1.Button1Click(Sender: TObject); var i,x: Integer; begin i := 8; x := MyFun(@i); {调用函数} ShowMessage(IntToStr(x)); {16} {现在 i 的值应该不会被修改, 但...} ShowMessage(IntToStr(i)); {16} { 没有 var 或 out 前缀的参数, 应该是传值的; 有 var 或 out 的参数是传地址的; 指针就是一个地址, 尽管没有指定传地址, 但事实上就是给了一个地址, 所以参数值也会改变! } end;
相关文章
- 12-14C语言和指针-回顾22-可变参数列表
- 12-14深入方法(21)- 开放数组参数
- 12-14深入方法(10)- 默认参数
- 12-14深入方法(24)- 方法是一个指针
- 12-14深入方法(22)- 指针参数
- 12-143、二、c# 面向对像编程。类,结构、C# 数据类型(引用类型、值 类型、指针类型)、ref参数与out参数、方法的重载、静态类型与静态成员、继承与多态、委托与事件
- 12-14在C#中使用指针参数封送方法指针
- 12-14[转] C++的引用传递、指针传递参数在java中的相应处理方法
- 12-14第六节:深入研究Task实例方法ContinueWith的参数TaskContinuationOptions