【C语言】题目33 - 用一个函数在函数内部创建一个变量来交换两个值的变量

89 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情

🚀write in front🚀

🔎大家好,我是泽奀,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🖊

前言

Hello,各位小伙伴们,今天泽奀就由我带大家开始刷第三十三题~那么赶紧一起来刷题吧。冲冲冲🔥

题目描述

用一个函数在函数内部创建一个变量来交换两个值的变量。

题目分析

注意→在你交换值的时候需要取出它们的地址,因为相当于你以及改变它们的内存编号了!我们指望它能够把a和b的值进行交换,也就是说我们在这个过程中会把swap()函数的值进行交换。

所以,我们的外部函数和内部函数是必须要建立联系。那么我们就要把地址给传递过去,通过地址的内存单元的编号我们才能够找回来。 通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。 

 通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。 传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。 

题目代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void swap(int *pa, int *pc)
{
	int tep = 0;
	tep = *pa;
	*pa = *pc;
	*pc = tep;
}
int main(void)
{
	int a = 10;
	int b = 20;
	printf("交换之前:%d - %d\n", a, b);
	swap(&a, &b);
	printf("交换之后:%d - %d\n", a, b);
	return 0;
}

运行结果

交换之前:10 - 20

交换之后:20 - 10

最后

不知道你学会了没有,那么下一题再见。别忘了刷题哟。