题目:
输入两个整数a和b的值,实现一个函数来交换两个整数的内容。
思路:先将要交换位置的函数输入进去,然后利用所写的函数将两个整数的位置调换,但由于形参和实参所占用的空间和地址不同,于是在调用方法上面我们选择选址调用。
我们有了具体的思路了就来一起实践一下吧~
ine _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int a = 0; int b = 0; printf("请输入a,b的值="); scanf("%d %d", &a, &b); printf("交换前:a=%d b=%d\n", a, b); swap(&a, &b);//&a=*pa &b=*pb printf("交换后:a=%d b=%d", a, b); return 0; }
首先是写出我们的主函数部分,可以看到我们用了一个自定义函数swap来交换a,b的值。
这里a,b的值指的是&a和&b,因为形参是实参的一份临时拷贝,形参所占用的地址和实参是不同的,所以我们不能用选值调用。
在这道题中如果我们使用选值调用的话,我们对形参部分进行修改是对实参部分不会造成影响的。因为swap函数中形参的地址和主函数中实参的地址是不同的。
那么接下来我们就要编写swap函数了。
void swap(int*pa, i