c语言中数值交换用值传递和地址传递
2021-02-10 19:16
标签:swap span swa 相同 main turn 实现 amp 地址传递 1:值传递,并未实现真正的交换 2:地址传递,但交换的是指针指向,a,b并未实现交换 3:传递地址,交换地址与值 c语言中数值交换用值传递和地址传递 标签:swap span swa 相同 main turn 实现 amp 地址传递 原文地址:https://www.cnblogs.com/franksimon/p/12741300.htmlvoid Swap(int a,int b)//这里a,b的地址与主函数的地址不同,仅仅是函数名相同
{
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int a=5;
int b=10;
Swap(a,b);//a还是5,b还是10
return 0;
}
#include"stdio.h"
void Swap(int *p1,int *p2)//传入的是a,b的地址,此时p1指向的是a,p2指向的是b;
{
int *tmp = p1;//p1的指向地址赋值tmp
p1 = p2;
p2 = tmp;//p1,p2指向地址发生交换
}//可是a,b的值并未发生交换
int main()
{
int a=5;
int b=10;
Swap(&a,&b);
return 0;
}
#include"stdio.h"
void Swap(int *p1,int *p2)//传入地址
{
int tmp;
tmp = *p1; //a,b地址发生交换
*p1 = *p2;
*p2 = tmp;
}
int main()
{
int a=5;
int b=10;
Swap(&a,&b);
return 0;
}