//法一(正常方法)
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
相关推荐
心仪久了会沦陷1 分钟前
C语言数据结构入门——队列补充:循环队列的数组实现企智汇-项目管理软件1 分钟前
离散制造管理系统怎么选?一套系统管住从研发到交付的全周期翻山越岭的少年5 分钟前
用控制信号理解状态变化:基于控制感知域对抗网络的变工况故障诊断IT研究室14 分钟前
最新计算机毕业设计选题推荐-基于spring boot的幼儿园管理系统-网站-文档指导-Java-springbootlonglongzihan15 分钟前
从LeetCode 19. 删除链表的倒数第 N 个结点深入理解“哨兵节点”会编程的吕洞宾16 分钟前
Spring Cloud Gateway限流实战 Redis令牌桶算法+熔断降级DeroZan22 分钟前
# jieba 分词 & 文本语料分析 & Python 内置函数笔记Gigavision27 分钟前
CAS(ME)²数据集 感知图卷积网络算法 CAS(ME)²数据集下载Wang's Blog28 分钟前
Java 项目部署之 Docker工具快速入门: DockerCompose 部署微服务集群BullSmall40 分钟前
SonarQube 9.9.8-community 适配 Jenkins 版本说明