例一
program j302;                                                               
var a,b:integer;                                                             
var x,y:^integer;                                                            
procedure fun(a,b:integer);                                            
var k:integer;                                                              
begin                                                                        

k:=a;                                                                        
a:=b;                                                                        
b:=k;                                                                        
writeln(a,',',b);                                                            
end;                                                                         
begin                                                                        
a:=3;                                                                        
b:=6;                                                                        
x:=@a;                                                                       
y:=@b;                                                                       
fun(x^,y^);                                                                  
writeln(a,',',b);                                                            

end.                                                                          
   

 以上过程调用中是传值,数值形参。当形参被改变时,实参不变。

结果输出:

             6,3

             3,6

 

当 procedure fun(var a,b:integer);   时  传地址,称变量形参。当形参被改变时,实参也同步被改变。

   输出结果:

               6,3

               6,3

  说明:    

          例一中的子程序中是输出形参值,主程序中输出实参值。                                                                                    
                                                                          

 

 

 

 

 

 

 

 

 

 


 

posted on 2008-11-27 14:52  sandboy  阅读(183)  评论(0)    收藏  举报