C语言交换两个整型变量的值(多方法)

C语言交换两个整型变量的值(多方法)

编译环境VS2017

值得注意的是:
1.异或法不会创建新变量,节省内存空间,但异或法只适用于int型
2.加减法不局限于变量类型,但可能存在溢出的可能,例如两个整型相加大于2147483647就会发生错误
3.创建临时变量法不局限于变量类型,也不会存在溢出问题,但相对其他两种方法多占用了内存空间

#include<stdio.h>
#include<stdlib.h>
void fun1(int x,int y)//创建临时变量法
{
	int z;
	z = x;
	x = y;
	y = z;
	printf("创建临时变量交换后a=%d,b=%d\n", x, y);
}
void fun2(int x, int y)//加减法
{
	x = x + y;
	y = x - y;
	x = x - y;
	printf("利用加减法交换后a=%d,b=%d\n", x, y);
}
void fun3(int x, int y)//异或法
{
	x = x ^ y; 
	y = x ^ y;
	x = x ^ y;
	printf("利用异或运算后a=%d,b=%d\n", x, y);
}
void main()
{
	int a = 10;
	int b = 20;
	printf("未交换之前a=%d,b=%d\n", a, b);
	fun1(a,b);
	fun2(a,b);
	fun3(a,b);
	system("pause");
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值