• 深入方法(22)- 指针参数


    {现在这个函数并没有 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;
  • 相关阅读:
    数据库连接池
    一致性hash
    java 集合大家族
    linkedlist
    HashMap
    hashcode
    Job 逻辑执行图
    CDN
    网站缓存
    Mysql临时文件目录控制
  • 原文地址:https://www.cnblogs.com/fansizhe/p/12729737.html
Copyright © 2020-2023  润新知