#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void swap(int *pa, int *pb)
{
int tmp = *pa;
*pa= *pb;
*pb = tmp;
}
int main()
{
int a = 0, b = 0;
printf("请输入要交换的两个数\n");
scanf("%d%d", &a, &b);
swap(&a,&b);
printf("%d %d", a, b);
getchar();
system("pause");
return 0;
}
不知道大家是否注意到,在定义函数时,并非将a,b的值赋给了形参,而是将a,b的地址付赋给了整形的指针变量*pa和*pb,这是因为在将实参传给形参之后,在函数内部对形参的变量进行了值得交换,但是形参无法将值传给实参,这是由于值传递是单向的,所以对函数内部的操作并不能改变外部的值,因此将a,b的地址进行了传递,这样,就能通过指针找到a,b,对其进行操作。
希望上述讲解对大家有所帮助!!以后回向大家分享我在学习中的经验,想学习的小伙伴可以关注我的博客欧!!