C语言如何使用函数交换两个变量的值
函数交换变量值
首先咱们先来看一下平常咱们会想到的一个方法
定义一个临时变量来交换数值
#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语言如何使用函数交换两个变量的值相关推荐
- 通过Swap函数交换两个变量的值
正确代码: void Swap(int *p1,int *p2) {int tmp;tmp = *p1;*p1 = *p2;*p2 = tmp; } 定义一个整形变量tmp,p1=&a ,p2 ...
- 关于如何通过Swap函数交换两个变量的值
数据交换在C语言中十分常见.作为初学者首先学的应该都是如下方式: int main() {int a = 10;int b = 20;int tmp = a;a = b;b = tmp;printf( ...
- 函数交换两个变量java_java 编写函数 交换两个基本变量的值
java 编写函数 交换两个基本变量的值 Java编写一个函数交换两个变量的值 Java函数在传递过程中只能够传值,不能传址.这样,函数的参数在函数内部做任何变化就都不会反映到外部调用者来.所以解决之 ...
- C语言写一函数交换两变量的值
C语言写一函数交换两变量的值 #include <stdio.h> void swap(int *p1, int *p2); // 形参,只声明 int main(){int a=5, b ...
- C语言中的关键字,变量的定义,变量的命名规则,交换两个变量的值,驼峰命名法【 C语言变量名命名法则】
C语言结构 C语言中的关键字 变量 变量的定义 变量的命名规则 交换两个变量的值 驼峰命名法 C语言结构 上图中我们可以看到最外层是程序,内部是所有的构成,我们从最里面开始说明. 当我们用计算机语言来 ...
- 【C语言练习——交换两个变量的值】
交换两个变量的值 前言 1.创建临时变量--一般方法 2.创建临时变量--指针 3.不创建临时变量--加减法 4.不创建临时变量--异或 总结 前言 本文练习交换两个变量的值,大体上分为两类方法,创建 ...
- python交换两个变量的值_python交换两个变量的值方法
python交换两个变量的值方法 大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的 ...
- PHP中不用第三个变量交换两个变量的值
相信大家在PHP面试或者学习中经常会遇到这个问题就是"不用第三个变量来交换两个变量的值",今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个 ...
- Python中有几种办法交换两个变量的值?
交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的.今天这个面试是问大家有几种办法来实现交换两个变量的值 .在没开始看具体答案前,你可以先想想看 . 下面分别来说说这几种方法: 1 ...
最新文章
- Silverlight WCF RIA服务(二十三)Silverlight 客户端 4
- 中国黄金行业投资需求与收益预测报告2022年版
- 【朋克智库】比特币详解2.0——比特币的沉沦
- ASA/PIX: Load balancing between two ISP - options
- php7.0 百度百科,PHP 7.0.10正式发布
- Linux(Ubuntu 19.10)下 Qt5 连接 MySQL(QMYSQL driver not loaded)
- [AngularJS]--基本用法
- 093-PHP数组比较
- linux mysql 每天备份_Linux下Mysql每天自动备份
- JAVASEday02
- 零跑汽车上半年表现亮眼,全域自研能力加持下业绩高速增长
- 【uni-app】uni-app移动端开发 - 登录界面
- 记录安装Node.js一直提示:The feature you are trying to use is on a network resource
- HCIA-Day_04-链路状态协议OSPF PPP
- 找PPT模板就上这5个网站~
- blender关于怎么导出上完色的FBX格式模型、以及导出后再导入,材质预览和渲染模式下材质透明度混乱的解决办法。
- 西电工作笔记(部分)【10000字】【原创】
- 海康摄像机sdk踩坑记述
- 江苏计算机类事业单位真题解析,2012年江苏事业单位考试综合计算机类真题及解析(7)...
- 完整dm368打印信息