用指针法实现交换两个变量的值,并在主函数中调用

2024-11-21 19:11:37
推荐回答(2个)
回答1:

假设你使用的c语言
#include
void
swap(int*
a,int*
b)//
a,b指针做形参
{
int
temp=*a;//
暂存指针a所指变量的值
*a=*b;//
指针b所指的值赋值给a所指变量
*b=temp;//
指针b所指变量的值变为原先a所指的值
}
int
main(void)
{
int
a=10,b=20;
swap(&a,&b);//
a,b
地址做实参
printf("%d
%d\n",a,b);
return
0;
}
如果你用的是c++的话,还可以使用引用类型
void
swap2(int&
a,int&
b)
{
int
temp=a;
a=b;
b=temp;
}
交换两个变量的值的时候可以使用异或符号^省去中间变量temp:
void
swap3(int&
a,int&
b)
{
a=a^b;
b=a^b;
a=a^b;
}

回答2:

#include
void
swap(int
*p1,int
*p2)
{
int
t;
t=*p1;
*p1=*p2;
*p2=t;
//交换p1和p2所指向的内容
}
void
main()
{
int
a,b;
int
*pointer_1,
*pointer_2;
printf("请输入两个数字:\n");
scanf("%d%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
swap(pointer_1,pointer_2);
//函数调用,指针作为实参
printf("\n%d,%d\n",a,b);
}