区别在于是否能改变原来变量的值,比如要调用函数fun();
如果用传值的方法如:
main()
{int a=0;
int b=0;
fun(a,b);
}
fun(int x,int y)
{
.........}
则在fun中无法改变 原来main中a,b的值,
如果采用引用,如
main()
{int a=0;
int b=0;
fun(&a,&b)
}
fun(int *x,int *y)
{.......}
则在fun中可以通过改变*x,*y的值来同时改变main中a,b的值!
还有一种引用叫别名引用如:
main()
{int a=0;
int b=0;
fun(a,b);
}
fun(&x,&y)
{......}
别名引用就像一个人有正名和伙伴们给你取的小名一样,其实说的都是你,
同样这里的x就是a ,y就是b,改变x就是改变a。
我也是个新手,一书上看到的一起分享一下!
传值调用:在栈中复制一份当前变量,传递给函数;效率低;
引用调用:将变量的地址直接传递给函数;效率高;
所以,值传递不会改变原先变量的值,引用传递则会;
最大的区别就是:
传值调用 对于此类函数形参的修改只在本函数内部有效
引用调用 对于此类函数形参的修改在整个程序中都有效果