函数交换变量值

首先咱们先来看一下平常咱们会想到的一个方法
定义一个临时变量来交换数值

#include<stdio.h>
#include<stdlib.h>
void swap(int x, int y) {int temp = x;x = y;y = temp;
}
int main() {int a = 10;int b = 20;printf("before : a = %d  b = %d", a, b);swap(a, b);printf("after : a = %d  b = %d", a, b);system("pause");return 0;
}

然后 咱们来看一下运行的结果:

发现 a,b的值居然没有改变???
这是为什么呢?
咱们记住一句话
原因是:形参是实参的一份拷贝
就像咱们平常的文件一样拷贝一份出来,我们修改拷贝后的文件2,改了文件2里面的内容 。但是这和原来的文件有什么影响呢?对吧 所以说这个函数只实现了 交换形参里面的内容 对于实参没有任何影响的呢。

再来说一下在函数调用过程中,如果有形参,实际是重新开辟出一块内存空间来存储东西的。
接下来画一张图:

先把 X的值赋给temp
然后将y的值赋给x
然后将temp的值赋给y 就完成了交换

但是我们看 交换的只是形参的值和实参没有关系

C语言如何使用函数交换两个变量的值相关推荐

  1. 通过Swap函数交换两个变量的值

    正确代码: void Swap(int *p1,int *p2) {int tmp;tmp = *p1;*p1 = *p2;*p2 = tmp; } 定义一个整形变量tmp,p1=&a ,p2 ...

  2. 关于如何通过Swap函数交换两个变量的值

    数据交换在C语言中十分常见.作为初学者首先学的应该都是如下方式: int main() {int a = 10;int b = 20;int tmp = a;a = b;b = tmp;printf( ...

  3. 函数交换两个变量java_java 编写函数 交换两个基本变量的值

    java 编写函数 交换两个基本变量的值 Java编写一个函数交换两个变量的值 Java函数在传递过程中只能够传值,不能传址.这样,函数的参数在函数内部做任何变化就都不会反映到外部调用者来.所以解决之 ...

  4. C语言写一函数交换两变量的值

    C语言写一函数交换两变量的值 #include <stdio.h> void swap(int *p1, int *p2); // 形参,只声明 int main(){int a=5, b ...

  5. C语言中的关键字,变量的定义,变量的命名规则,交换两个变量的值,驼峰命名法【 C语言变量名命名法则】

    C语言结构 C语言中的关键字 变量 变量的定义 变量的命名规则 交换两个变量的值 驼峰命名法 C语言结构 上图中我们可以看到最外层是程序,内部是所有的构成,我们从最里面开始说明. 当我们用计算机语言来 ...

  6. 【C语言练习——交换两个变量的值】

    交换两个变量的值 前言 1.创建临时变量--一般方法 2.创建临时变量--指针 3.不创建临时变量--加减法 4.不创建临时变量--异或 总结 前言 本文练习交换两个变量的值,大体上分为两类方法,创建 ...

  7. python交换两个变量的值_python交换两个变量的值方法

    python交换两个变量的值方法 大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的 ...

  8. PHP中不用第三个变量交换两个变量的值

    相信大家在PHP面试或者学习中经常会遇到这个问题就是"不用第三个变量来交换两个变量的值",今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个 ...

  9. Python中有几种办法交换两个变量的值?

    交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的.今天这个面试是问大家有几种办法来实现交换两个变量的值 .在没开始看具体答案前,你可以先想想看 . 下面分别来说说这几种方法: 1 ...

最新文章

  1. Silverlight WCF RIA服务(二十三)Silverlight 客户端 4
  2. 中国黄金行业投资需求与收益预测报告2022年版
  3. 【朋克智库】比特币详解2.0——比特币的沉沦
  4. ASA/PIX: Load balancing between two ISP - options
  5. php7.0 百度百科,PHP 7.0.10正式发布
  6. Linux(Ubuntu 19.10)下 Qt5 连接 MySQL(QMYSQL driver not loaded)
  7. [AngularJS]--基本用法
  8. 093-PHP数组比较
  9. linux mysql 每天备份_Linux下Mysql每天自动备份
  10. JAVASEday02
  11. 零跑汽车上半年表现亮眼,全域自研能力加持下业绩高速增长
  12. 【uni-app】uni-app移动端开发 - 登录界面
  13. 记录安装Node.js一直提示:The feature you are trying to use is on a network resource
  14. HCIA-Day_04-链路状态协议OSPF PPP
  15. 找PPT模板就上这5个网站~
  16. blender关于怎么导出上完色的FBX格式模型、以及导出后再导入,材质预览和渲染模式下材质透明度混乱的解决办法。
  17. 西电工作笔记(部分)【10000字】【原创】
  18. 海康摄像机sdk踩坑记述
  19. 江苏计算机类事业单位真题解析,2012年江苏事业单位考试综合计算机类真题及解析(7)...
  20. 完整dm368打印信息

热门文章

  1. Tableau实战系列如何在阿里云Linux服务器上安装 Tableau Server
  2. 数据可视化高级部分:如何使用轨迹地图对路径数据进行分析
  3. 字节跳动ClickHouse在用户增长分析场景的应用
  4. Python 黑魔法 --- 描述器(descriptor)
  5. 自编码器及相关变种算法简介
  6. 大数据之“用户行为分析”
  7. Python 实现有道翻译命令行版
  8. 如何制作并更改项目icon文件
  9. 自底向上构建知识图谱全过程
  10. Spring 3.1 Environment Profiles--转载