高手进来把

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:18:50
# include<stdio.h>
void swap(int x,int y);
main()
{
int a=5,b=10;
swap(a,b);
printf(“a=%d,b=%d\n”,a,b);
}
void swap(int x,int y)
{
int temp;
temp=x,x=y,y=temp;
}
在TC2.0里怎么运行结果没有达到我的要求啊
a和b没有交换值怎么改改可以达到要求请赐教

你这样是值传递,函数里改变的只是实参的一个副本.

楼上的是直接传地址,我这个是传引用,看着选个吧.

你可以用传引用.
void swap(int &x,int &y);就ok了

# include<stdio.h>
void swap(int x,int y);
main()
{
int a=5,b=10;
swap(a,b);
printf(“a=%d,b=%d\n”,a,b);
}
void swap(int &x,int &y)
{
int temp;
temp=x,x=y,y=temp;
}
这样就行了啊.加个&号,取个别名的意识..你试试

# include<stdio.h>
void swap(int*x,int*y);
main()
{
int a=5,b=10;
swap(&a,&b);
printf(“a=%d,b=%d\n”,a,b);
}
void swap(int*x,int*y)
{
int temp;
temp=*x,*x=*y,*y=temp;
}
函数调用是值传递,既单向传递,应该用指针

这样就好了

# include<stdio.h>
void swap(int *x,int *y);
main()
{
int a=5,b=10;
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
void swap(int *x,int *y)
{
int temp;
temp=*x,*x=*y,*y=temp;
}

#define SWAP(x, y, t) ((t)=(x),(x)