//法一(正常方法)
int main()
{
int a = 3;
int b = 5;
int tmp = 0;//临时变量
printf("before:a=%d b=%d\n", a, b);
tmp = a;
a = b;
b = tmp;
printf("after:a=%d b=%d\n", a, b);
return 0;
}
//法二(加减法) 有缺陷 a=a+b超出范围就可能出错(可能会溢出)
int main()
{
int a = 3;
int b = 5;
printf("before:a=%d b=%d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("after:a=%d b=%d\n", a, b);
return 0;
}
//法三(异或法)
int main()
{
int a = 3;
int b = 5;
printf("before:a=%d b=%d\n", a, b);
a = a ^ b;//a 011 b 101 异或结果为110
b - a ^ b;
a = a ^ b;
printf("after:a=%d b=%d\n", a, b);
return 0;
}
交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后a=5,b=3。
失落的香蕉2024-01-20 6:05
相关推荐
灵感__idea6 小时前
Hello 算法:“走一步看一步”的智慧lwf0061648 小时前
导数学习日记yaoxin5211238 小时前
390. Java IO API - WatchDir 示例头发够用的程序员8 小时前
从滑动窗口到矩阵运算:img2col算法基本原理武帝为此9 小时前
【数据清洗缺失值处理】Halo_tjn9 小时前
Java 基于字符串相关知识点梦想的颜色10 小时前
java 利用redis来限制用户频繁点击念越10 小时前
算法每日一题 Day08|双指针法解决三数之和黎阳之光10 小时前
黎阳之光透明管理:视频孪生重构智慧仓储新范式PH = 711 小时前
OverlayFS联合文件系统使用示例