4、上面运行结果来普通变量作函数的参数。另一种是广义上的传值看,并没有达到交换的目的。因为这里采用的是调用,所传递的是变量地址的值,通常用指针作传值调用,函数调用时传递的是实参的值,是单为函数的参数,也称为传址调用。向传递过程,形参值的改变对实参不起作用,所1.1传值调用以出现了上面的结果。传值调用是指当发生函数调用时,系统给形这种用普通变量作为参数是传值调用中较参分配内存空间,再将实参的值按位置对应的赋为常见的形式,它在参数传递过程中进行的是传给形参,既对形参进行初始化。因此,传值调用的值操作,即赋值操作。对空间占用较大的参数来实现机制是系统将
5、实参的值拷贝一个副本给形说,这种传值操作的执行效率和空间利用率都很参,一旦形参获得了值便与实参脱离关系,此后低。无论形参发生了怎样的改变,都不会影响到实1.2传址调用X收稿日期:2004-02-25XX作者简介:王俊书(1974-),男,安徽寿县人,解放军炮兵学院在读研究生,主要研究图形理论及计算机模拟。++第3期王俊书,郑忠刚:C函数中引用调用的优越性·97·如果需要传递的数据量较大且存放在一个简单方便,又保证执行的效率。使用引用作函数连续的内存区域中,就可以只传递数据的起始地形参时,调用函数的实参要用变量名,将实参的址,而不需要传递数据的
6、值。使用这种传址调用变量名赋给形参的引用,相当于在被调用函数中方式时,调用函数的实参使用地址值,被调用函使用了实参的变量值。而且这种调用起到传址调数的形参使用指针,调用时系统将实参的地址值用的作用,但它又比传址调用更方面、更直接。因赋给对应的形参指针,使形参指针指向实参的变此,可以这样说:引用作参数,在使用上如同普通量值。这样在子函数运行过程中,对形参指针所变量作参数形式一样简单;在效率上如同指针作指变量值的改变也同样影响着实参指针所指向参数一样的高效。的变量的值。例如,下面的程序中用引用实现交换两个变例如一个简单的交换两个变量值功能的函量值
7、的功能。数,其代码如下:#include〈iostream.h〉#include〈iostream.h〉voidswap(int&x,int&y)voidswap(int3x,int3y){inttemp=x;{inttemp=3x;x=y;3x=3y;y=temp;3y=temp;}}voidmain()3voidmain(){inta=5;{inta=5;intb=6;intb=6;swap(a,b);swap(&a,&b);cou《t"a="《a《"、b="《b《endl;cou《t"a="《a《"、b="《b《endl;}}程序执行的
8、结果是a=6,b=5实现了变量值程序执行的结果是a=6,b=5.swap函数实交换的功能。从上例中可看出,使用引用作为形现了变量值交换的功能。参具有以下优点:这种以