function aa(str:string):string;
中的STR是形式参数,只传递值,
function aa(var str:string):string;
中的STR如果在函数中改变了,那么所传的参数值也改变了

解决方案 »

  1.   

    很简单,在function aa(str:string):string;中str是一个常量(在函数执行过程中str的值不能变化)。
    而function aa(var str:string):string;的str在程序的执行中值是可以变化的。就好象一个返回值。如
    function aa(var str:string):string;
    begin
      str := Str + str;
    end;var
      ss,dd:String;
    begin
      dd := 'aa';
      aa(dd);//第二个
      ss := dd;
    end;
    那么ss值是'aaaa'!
      

  2.   

    var 在此函数中可以改变此参数的至.
    没有的话.至传递至了
      

  3.   

    str:string 形参,只传递值。
    var str:string 是变参,有值返回,在函数中改变了,str的值也会变。
      

  4.   

    function aa(str:string):string;
    传值,如果在函数体内对str作了改变,不会影响到外部函数中str的值
    function aa(var str:string):string;
    传引用,如果在函数体内对str做了改变,外部函数中str的值会同步变化
      

  5.   

    这是Object Pascal中的值参和变参的区别,值参只传递值,变参是传地址,也就是说,当你在函数或过程中改变了值参的值是,主调函数中实际参数值不便,而若是变参,就要变。
      

  6.   

    dll如果这么传递会怎么样呢。