实现一个函数来交换两个整数的内容。
解题思路
需要清楚传值和传指针的区别。
传值:形参是实参的一份拷贝,函数运行起来后,形参是形参,实参是实参,形参和实参没有任何关联性,改变形参时,不会对实参造成任何影响。
传地址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此对形参解引用之后的内容进行修改,改变的就是实参。
实例
//交换两个整数
#include <stdio.h>
void Swap(int* pa, int* pb)
{
int i = 0;
i = *pa;
*pa = *pb;
*pb = i;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交换前:a = %d,b = %d\n", a, b);
Swap(&a, &b);
printf("交换后:a = %d,b = %d\n", a, b);
return 0;
}