一.按值传递
1、实参和形参各占一个独立的存储空间
2、形参的存储空间是函数被调用时才分配的调用开始,系统为形参开辟一个临时的存储区,然后将实参传递给形参,这是形参就得到了实参的值。
void swap1(int x, int y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
}
按值传递作两数交换时只是简单的对形参进行两数交换,实参未收到任何影响。在两数交换函数结束时因为形参也是局部变量,在函数结束时会被系统自动回收。
二.地址传递
地址传递与值传递的不同的是它把实参的存储地址传送给形参,使得形参指针和实参指针指向同一块地址。所以改变形参的值实参都会受到影响。
三.引用传递
引用传递是在形参调用前加入引用运算符“&”。引用为实参的别名,和实参是同一个变量,则他们的值也相同,实参会随着引用改变而改变。(C的叫法就是取地址,有真正索引到变量地址对应的值.)