传值无论函数外面的变量是哪个,把参数的值通过栈传递给函数,函数内部不管也不知道是外面的哪个量,仅仅得到具体的值。而传址是把数据的内存地址传递给函数,这样函数如果在此地址上修改数据,数据就真的变了。
典型应用:
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个变量参数后,会真的交换的。