C语言第三十三弹---交换变量(不使用临时变量)

简介: C语言第三十三弹---交换变量(不使用临时变量)

C语言在不使用临时变量的情况下实现变量交换

思路:看见交换变量,那么最容易考虑到的就是使用临时变量交换。如果不允许使用临时变量那么该如何考虑呢?使用^异或位运算(二进制位相同为0 不同为1),通过利用异或运算的特性可以完成交换。

int main()
{
  int a = 3;
  int b = 5;
   a = a ^ b;//0011 ^ 0101 = 0110
   b = a ^ b;//0110 ^ 0101 = 0011
   a = a ^ b;//0110 ^ 0011 = 0101
   printf("a = %d,b = %d",a,b);
  return 0;
}

其实想要完成交换还可以通过加减法、乘除法,但是这些方法具有一定的局限性,对数字有很多要求,不然可以会发生溢出或者精度不准等问题。

相关文章
|
1天前
|
存储 编译器 C语言
C语言第三弹---数据类型和变量
C语言第三弹---数据类型和变量
|
1天前
|
存储 程序员 编译器
C语言变量与赋值详解
C语言变量与赋值详解
22 1
|
1天前
|
C语言
C语言数据类型和变量(C语言零基础教程)
C语言数据类型和变量(C语言零基础教程)
|
1天前
|
存储 安全 编译器
C语言怎样定义指针变量
C语言怎样定义指针变量
7 0
|
1天前
|
存储 C语言
C语言中定义结构体类型变量的深入探索
C语言中定义结构体类型变量的深入探索
10 0
|
1天前
|
C语言
C语言6🔥:本地变量与转义字符
C语言6🔥:本地变量与转义字符
21 0
|
1天前
|
C语言
C语言1🔥: 变量,赋值与初始化
C语言1🔥: 变量,赋值与初始化
19 0
|
1天前
|
编译器 C语言
C语言入门之变量、常量、字符串、转义字符
C语言入门之变量、常量、字符串、转义字符
|
1天前
|
存储 C语言
C语言中的指针变量
C语言中的指针变量
9 0
|
1天前
|
C语言
C语言变量定义域
C语言变量定义域
10 0

热门文章

最新文章