var ll:integer 传址 ll:integer传值

解决方案 »

  1.   

    我记得是这样的:
    var
      ll:integer=2;
    ================================================
    function a(var ll:integer):integer;
    begin
         ll:=ll+2;
    end;
       此时ll=4
    =============================================
    function a(ll:integer):integer;
    begin
         ll:=ll+2;//此时ll=4
    end;
       此时ll=2
    这下差不多了吧
      

  2.   

    那就是说
    ll应该是个全局变量
    起码是个public
    是吧
    这种编程风格是不是很好呢?
      

  3.   

    Var表示传址,而不是传值
    最好复习一下大学Pascal教程
      

  4.   

    并非如007pro所说,ll并不能说是全局变量
    在参数前加VAR就意味着这是一个变量参数,也就是说在函数内部若此值发生变化要对原形发生影响如
    function a(var ll:integer):integer;
    begin
      inc(ll);
      Result:=ll*2;
    end;...
    var k,j:integer;
    k:=1;
    j:=a(k);
    同j=4,而k=2
    这样解释够清楚么?
      

  5.   

    好好复习编译原理吧.
    一般参数可能有6种传参方式:传值,传名,传地址,传结果,传数组,传过程/函数...
    (Delphi只有传值--值参,传地址--就是变量参数)
    繁着呢...
    :p