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");
}

在这里插入图片描述

  • 4
    点赞
  • 0
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值