怎样不用临时变量而交换两个变量的值?有多少种方法?听我慢慢道来......
要交换两个变量的值,在高级语言中,通常使用的方法是通三个赋值语句来实现:
t = a; a = b; b = t; //t为临时变量
而在“汇编年代”,为节省资源, 程序员会通过以下方法实现
a ^= b; b ^= a; a ^= b;
妙吧,你还能想到其它方法吗? 没错,看下面
a=a+b; b=a-b; a=a-b;
在各种计算机语言中,前一种方法是通用的,而后两种方法则会受到类型限制,很明显异或(^)运算只适用于整型,第三种虽同时适用于整型和浮点型,却不适用于引用类型;
有完美解决方法吗?答案在http://hi.baidu.com/liugaotian/blog/item/bd0bae3e0d63d13870cf6ce8.html哈,广告完毕,继续......
在中语(暂以此名指代本计算机语言)中,你可以通过连续赋值语句完成
a, b = b, a;
理论上,它相对前几种方法更高效(简明自不必提了:),此外它具有第一种方法的通用性特点,故而堪称完美。
附中语实现源代码:(交换变量.yesi)
公有 元 示例 {
公有 共享(字串[] 起始参数列表){
中整 a=1, b=2;
printf("变量a\t变量b \n");
printf("------------ 0> t= a; a = b; b = t;\n");
t=a ; a=b; b=t;
printf(" %s\t %s\n", a, b);
printf("------------ 1> a ^= b; b ^= a; a ^= b;\n");
a^= b; b ^= a; a ^= b;
printf(" %s\t %s\n", a, b);
printf("------------ 2> a=a+b; b=a-b; a=a-b;\n");
a=a+b; b=a-b; a=a-b;
printf(" %s\t %s\n", a, b);
printf("------------ 3> a ,b = b , a;\n");
a ,b = b , a;
printf(" %s\t %s\n", a, b);
}
共享 中整 t;
私有 共享 空型 printf(字串 格式, 对象[] 参数列表 ...){
System.out.printf(格式,参数列表);
}
}
相关图片(看不到时,点击看原图或到http://hi.baidu.com/liugaotian 查看)
- 描述: 中语编程技巧
- 大小: 168.2 KB
分享到:
相关推荐
给两个整型变量赋值,然后交换两个变量的值,最后输出交换后的变量值。
论文研究-汽车购置税优惠政策应该常态化吗?——基于CGE模型的分析.pdf, 为什么购置税优惠政策不适用于供给约束时期,现有研究极少基于一般均衡角度做出解释并提出替代...
不用第三方变量交换两数的值 不用第三方变量交换两数的值 不用第三方变量交换两数的值
例如, 上⾯最后⼀个例⼦中除了 ${AREA1} 和 ${AREA2} 这两个我们预期的变量外, 最终还包含了 ${math} 和 ${get_area} 这两个变量。 虽然通常情况下这些额外的变量不会造成什么问题, 但是它们有可能会⽆意覆盖其它的...
char型变量中能不能存储一个中文汉字?为什么 char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode...
linux超级基础系列——shell变量(本地变量和环境变量 linux超级基础系列——shell变量(本地变量和环境变量
代码 基于遗传算法的优化计算——建模自变量降维代码代码 基于遗传算法的优化计算——建模自变量降维代码代码 基于遗传算法的优化计算——建模自变量降维代码代码 基于遗传算法的优化计算——建模自变量降维代码代码...
Dim x As Long, y As Long, z As Long x = 11 y = 22 Print "x和y的值" Print "x="; x, "y="; y Print Print "x和y的值互相交换后各自的值" z = x x = y y = z Print "x="; x, "y="; y
论文研究-是否应提高高价股的最小报价单位?——基于人工股票市场的实验研究.pdf, 采用人工股市模拟的方式探讨了不同价位股票最小报价单位变动对市场质量的影响.首先, 以...
在A中定义有全局变量X(或类的静态成员变量),则在动态库B中访问的X,与可执行程序C中访问的X是同一个变量还是两个不同的变量? 答案:是两个不同的变量。 2. 工程中包含动态库A,动态库B,可执行程序C。C依赖于A和...
KUKA系统变量编程指导(全集+中文解释)
Linux设置环境变量小结设置永久变量&临时变量 全局变量&局部变量
交换两个变量的值.java
易语言交换变量值源码,交换变量值,交换数据_整数,交换数据_文本,交换数据_字节集,交换数据_支持库_整数,交换数据_支持库_文本,交换数据_支持库_字节集
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和...
假设有个字典变量 &{USER} 中有值 {'name': 'robot', 'password': 'secret'}, 则下⾯两个⽤例的效果是等价的。 2.2 获取字典变量中的项 可以通过 &{NAME}[key] 这样的语法格式获取字典中某项的值, 其中 key 是键的...
method 1: a,b = b,a method 2: a = a+b b = a-b ... 您可能感兴趣的文章:python交换两个变量的值方法对Python中实现两个数的值交换的集中方法详解对变量赋值的理解–Pyton中让两个值互换的实现方法
在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,需要动一下脑筋。在本文介绍了两个方法(其实原理都是一个)。其基本原理是数的中和。也是说,通过某种运算(二元运算)将a和b两个数变成一个数,并...
类中静态成员变量和普通变量的区别——实例代码(VS2010),已测试,没有问题。
S7-200SMART PLC中使用临时变量TEMP无法实现自锁功能的解决办法