三种参数传递方式
1.变量名
void swap1(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("x=%d,y=%d\n",x,y);
}
int main()
{
int a=2
int b=3;
swap1(a,b);
printf("a=%d,b=%d\n",a,b);
}
变量名 | 值 | 地址 |
---|---|---|
a | 2 | 1000 |
b | 3 | 1001 |
1002 | ||
x | 1003 | |
y | 1004 | |
… | … | … |
tmp | 2 | 2000 |
x=3 , y=2
a=2 , b=3(a,b不变)
2.指针
void swap2(int *px,int *py)
{
int tmp;
tmp=*px;
*px=*py;
*py=tmp;
printf("px=%d,py=%d\n",*px,*py);
}
int main()
{
int a=2
int b=3;
swap2(&a,&b);
printf("a=%d,b=%d\n",a,b);
变量名 | 值 | 地址 |
---|---|---|
a | 2 | 1000 |
b | 3 | 1001 |
… | … | … |
px | 2000 | |
py | 2001 | |
tmp | 2 |
px=3 , py=2
a=2 , b=3(a,b不变)
3.引用
void swap3(int &x,int &y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("px=%d,py=%d\n",x,y);
}
int main()
{
int a=2
int b=3;
swap3(a,b);
printf("a=%d,b=%d\n",a,b);
变量名 | 值 | 地址 |
---|---|---|
a | 1000 | |
b | 1001 | |
… | … | … |
tmp | 2 |
x=3 , y=2
a=3 , b=2(a,b改变)