Fork me on Github Fork me on Gitee

swap,传参实质

void swap(int a,int b){
int s=a;
a=b;
b=s;
}

int main(){
int x=1,y=2;
swap(x,y);     
}

 上面的函数并不能实现交换,因为传参相当于赋值

把x,y传给函数swap(),实际发生了:

int a=x,int b=y只是把x,y的值赋给a,b在函数中交换了a,b的值

对x,y无影响

而&和*可以实现

因为他们相当于

int &a=x,int &b=y;这里a,b分别为x,y的别名

int *a=x,int *b=y也可以,因为是a,b的地址

 

posted @ 2022-03-06 12:46  Tenerome  阅读(34)  评论(0编辑  收藏  举报