值传递:
void swap(int a,int b)
{
int temp = a;
a = b;
b = temp;
}
在值传递中,只是将主函数中的实参的值传递给了形参,形参不会修饰实参,因此实参的值不发生改变。
地址传递:
void swap(int *a,int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
在地址传递中,主函数调用函数 swap(&a,&b)将实参的地址传递给了函数,因此在函数中实参的值随着函数中的语句发生变化。
引用传递:
void swap(int& a,int& b)
{
int temp = a;
a = b;
b = temp;
}
引用传递,就是使用实参的别名,实际上就是直接使用实参,形参可以对实参进行修饰。