在函数中a、b变量所存储的地址不同,我们在函数中如果仅仅交换变量a和b的值是无法实现的。
所以我们要在函数中创造新的指针a和b,用于存放a和b的地址。并通过解引用对main函数中a、b的值进行了交换。
#include<stdio.h>
#include<iostream>
using namespace std;
int swap(int *a,int *b);
int main()
{
int a;
int b;
cin>>a>>b;
// scanf("%d %d",&a,&b);
swap(&a,&b);//取a、b的地址
printf("%d %d",a,b);
return 0;
}
//改变地址但是不改变地址里面的数值
int swap(int* a,int* b)
{
int temp=0;
temp=*b;
*b=*a;//取b的地址为a
*a=temp;//取a的地址为b
}