传递方式一:值传递
#include<stdio.h>void Exchg1(int x,int y){int tmp;tmp=x;x=y;y=tmp;printf("x=%d,y=%d",x,y);}int main(){int a=4,b=6;Exchg1(a,b);printf("a=%d,b=%d",a,b);}
最后的结果为x=6,y=4 a=4,b=6,原因如下:
传递方式二: 地址传递
#include<stdio.h>void Exchg2(int *px,int *py){int tmp=*px;*px=*py;*py=tmp;printf("*px=%d,*py=%d.",*px,*py);}int main(){int a=4;int b=6;Exchg2(&a,&b);printf("a=%d,b=%d.",a,b);}
运行后的结果是: *px=6,*py=4 a=6,b=4,通过值传递,运行函数Exchg2是可以实现a,b两数的交换的。
传递方式三:引用传递
#include<stdio.h>void Exchg3(int &x,int &y){int tmp=x;x=y;y=tmp;printf("x=%d,y=%d.",x,y);}main(){int a=4;int b=6;Exchg3(a,b);//这里调用方式与值传递 一样 printf("a=%d,b=%d.",a,b);}