打印两个整数并交换位置(函数)

时间:2023-01-20 13:55:30

正确解法:

#include<stdio.h>
void Swap(int* pa,int* pb)
{
int tmp;
tmp=*pa;
*pa=*pb;
*pb=tmp;
}
int main()
{
int a=10;
int b=20;
printf("a=%d b=%d\n",a,b);
Swap(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}

我们正确的做法应该是用指针取地址的方式来解决这个问题,这个*p才能拿着将要去替换的地址去把这个地址给替换了

注:这个函数没有返回值所以在命名的时候用的是空的返回值void(函数必须要有返回值 就算是空的也要写出来);在主函数下开始引用的时候要用&进行取地址

打印两个整数并交换位置(函数)

错误解法:

#include <stdio.h>
void Swap(int x,int y)
{
int tmp=0;
tmp=x;
x=y;
y=tmp;
}
int main()
{
int a=10;
int b=20;
printf("a=%d b=%d\n",a,b);
Swap(a,b);
printf("a=%d b=%d\n",a,b);
return 0;
}

如果是这种方法则会出现值传到了Swap里面去 但是传不出来 地址没变(也就是说x是x a是a,x是的值如何都影响不了a)

打印两个整数并交换位置(函数)