zoukankan      html  css  js  c++  java
  • 声明中的var和const && 形式参数中的var和const

    记得把声明中的var和const与形式参数中的var和const区分开来!!

    procedure TForm2.Button1Click(Sender: TObject);
      procedure TestVarOutConst(var sStr01: string; out sStr02: string ; const sStr03: string ; sStr04:string );
      const  //只是定义常量而已
        cHjp='ZXL';
      var //这里声明了一个变量
        vZXL:string ;
      begin
        //sStr02的值为空
        ShowMessage('sStr01: '+sStr01+'/sStr02: '+sStr02+'/sStr03: '+sStr03+'/sStr04: '+sStr04);
        {这里show值时由于形参参数2是out,故形参参数2的实参的值会被忽略,即为空。
        待下面代码执行之后,参数2的值就变成了‘sStr02’。}
        sStr01:='sStr01';
        sStr02:='sStr02';
        //sStr03:='sStr03';//这个也算一个常量,因为没有引用计数,所以不能修改,这样写编译不过去
        //方法中的const形式参数有时也相当于一个常数,不能在方法中给此形式参数赋值;
        {字符串和动态数组比较特殊,有引用计数一说,动态数组有引用计数,静态数组没有引用计数,
        这些比较复杂,,,先把声明中的var和const与形式参数中的var和const区分开来就好了,后续
        再深入了解。}
    
        sStr04:='sStr04';
      end;
      var
        vStr01,vStr02,vStr03,vStr04:string;
    begin
      {注意形参
      var sStr01: string   //传地址
      out sStr02: string   //这个也是传地址,但是忽略实参的值
      const sStr03: string //const的意思 不做引用计数
      }
      //形参都是字符串类型,只是为了好测试
      vStr01:='vStr01';
      vStr02:='vStr02';
      vStr03:='vStr03';
      vStr04:='vStr04';
      TestVarOutConst(vStr01,vStr02,vStr03,vStr04);
      //这里可以看出vStr01,vStr02的值改变了
      ShowMessage('vStr01: '+vStr01+'/vStr02: '+vStr02+'/vStr03: '+vStr03+'/vStr04: '+vStr04);
    
    end;
  • 相关阅读:
    php数组的循环遍历
    Mysql中的字符串函数
    关于给居于网络里面的计算机发送消息的问题
    WINDOWS系统服务详解
    GET DATA
    无法移动或重命名“Documents and Settings”文件夹
    瑞星升级包 下载网站
    ARP本机绑定 批处理
    如何获得各个运行进程的id
    如何通过程序知道有哪些计算机与自己的电脑连接
  • 原文地址:https://www.cnblogs.com/168-h/p/15078194.html
Copyright © 2011-2022 走看看