像下面那样声名一个过程:
procedure pname(i:int, var b:boolean)b前面加个var有什么作用?是不是意思是说b是该过程的返回值?

解决方案 »

  1.   

    var就是可变参数,即参数b的值在函数中改变后,直接影响原先参数的值。而参数i,无论函数中怎么改变,都不会硬性原先参数的值。
    我觉得你最好自己做个试验,很容易判断的。
      

  2.   

    传地址,函数得到的是b的地址,也就时他的值可以修改的
    i 传的是值,函数执行完i值不变
      

  3.   

    例如:
    procedure pname(i:int, var b:integer)
    begin
      b:=i;
    end;procedure out_of_b;
    var b_out:integer;
    begin   pname(20,b_out);
       
      //now b_out=20
      
    end;