传值与传引用的区别.什么时候传值什么时候传引用

2025-04-14 08:25:27
推荐回答(1个)
回答1:

传值无论函数外面的变量是哪个,把参数的值通过栈传递给函数,函数内部不管也不知道是外面的哪个量,仅仅得到具体的值。而传址是把数据的内存地址传递给函数,这样函数如果在此地址上修改数据,数据就真的变了。

典型应用:

void swap1(int a, int b){
    a^=b;
    b^=a;
    a^=b;
}
void swap2(int &a, int &b){
    a^=b;
    b^=a;
    a^=b;
}

swap1在函数内部交换两个整数,在外面没有任何变化。

swap2接受了2个变量参数后,会真的交换的。