C语言基础:两个变量交换值的方法
2014-05-03 10:41
204 查看
学习任何语言基础时,两个数值得交换是必须掌握的,下面是3种不同的方式(c语言)
方法一:利用数学的计算技巧
这种方法的写法不唯一,对于a,b;只要先给其中一个先赋予a-b,其他的自己算一下就能写出来;
方法二:第三方变量,也是最常用,可读性最好的
方法三:位运算,利用^异或运算的特点:a^b^a = a^a^b = 0^b = b,交换律,相同数值异或为0,0和任何数异或为任何数
方法一:利用数学的计算技巧
#include <stdio.h> int main() { int a =10, b = 20; printf("交换前a=%d, b=%d\n", a, b); a = a - b; b = a + b; a = b - a; printf("交换后a=%d, b=%d\n", a, b); return 0; }
这种方法的写法不唯一,对于a,b;只要先给其中一个先赋予a-b,其他的自己算一下就能写出来;
方法二:第三方变量,也是最常用,可读性最好的
#include <stdlib.h> #include <stdio.h> int main() { int a =10, b = 20; printf("交换前a=%d, b=%d\n", a, b); int temp = a;//先定义一个临时变量 a = b; b = temp; printf("交换后a=%d, b=%d\n", a, b); return 0; }
方法三:位运算,利用^异或运算的特点:a^b^a = a^a^b = 0^b = b,交换律,相同数值异或为0,0和任何数异或为任何数
#include <stdio.h> int main() { int a =10, b = 20; printf("交换前a=%d, b=%d\n", a, b); a = a^b; b = b^a; a = a^b; printf("交换后a=%d, b=%d\n", a, b); return 0; }
相关文章推荐
- C语言基础—实现两个变量交换的三种方法
- Java语言基础(六)char成员变量默认初始值 最简单的Java源文件 Java的main()方法
- JavaScript两个变量交换值的实现方法
- 两个变量交换值的几种方法
- 两个变量交换值 优化方法
- 两个变量交换值的三种方法
- 零基础学C语言 笔记三 三种方法交换两个变量的值
- Java语言基础{Java_se(05)}-面向对象-封装-构造方法-成员变量,局部变量
- ObjectC语言基础4—ARC、成员变量、构造方法、property
- 两个变量交换值的方法 按位异或 快速交换两个变量。
- 两个变量交换值,不使用缓存的方法
- 两个变量交换值的方法
- 两个变量交换值的方法
- 【java基础】两个变量互换不使用第三方变量的方法
- DirectX 3D_基础之HLSL(高级着色语言) HLSL着色器程序的编制 HSLS变量 HLSL入口函数 HLSL程序编译 变量常量类型 设置方法 前缀 关键字 类型 语句 类型转换
- python基础教程之简单入门说明(变量和控制语言使用方法)
- 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法
- C语言基础教程(二)数据类型、变量和运算符
- 黑马程序员--02.Java语言基础--01.【关键字】【标示符】【常量】【变量】【运算符】
- 非.NET语言调用.NET XMLWeb Services返回的数据集合的两个方法