var 代表过程运行时还要对其修改;还有const,表示只为传值之用,运行过程中不改变

解决方案 »

  1.   

    var声明的是变参,就是说,在该过程或函数中对此参数的处理会影响到它~~换句话说,如果不是用var声明的,那么在函数中会copy一个副本,对这个副本的操作不影响原来的变量直。但是变参就不用了,在函数中也是对这个变量进行操作。
      

  2.   

    前面有var的变量是变参,没有var的变量是值参。
    当变量是变参时,参数可以在程序当中改变,而且在一个的情况下,值可以传出来。比如说:
    procedure canchange(var n:integer);
    begin
      n=6;
    end;procedure nochange(n:integer);
    begin
      n=6;
    end;
    下面在程序中调用它:
    var
      n1,n2:integer;
    begin
      n1:=0;
      n2:=0;
      canchange(n1);
      nochange(n2);
      showmessage(inttostr(n1));
       //这个时候,n1的值为6,从0变到6,显示的也是6;   
      showmessage(inttostr(n2));
       //这个时候,n2的值还是为0,虽然在过程nochange中改变了值,但是传不出来。显示为0;end;诸如此类,请细细体会其中曲折,其实刚开始我也是很迷惑的,现在也算还好吧,不太复杂的还是能知道的。还有你把它写成函数的形式也是可以的,不过return 一个相应的值。不过看你的意思,好象是实现互换数字也就是相互赋值的功能,所以觉得没有什么必要用函数了。