我们先来看一下,创建临时变量交换两个数字。
#include<stdio.h>
{int a=2;int b=3;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;
}
图解:
运行结果:
再看一下不创建的方法
方法一:加加减减
//加减法 缺点可能会溢出
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 ",a,b);
}
图解
运行结果:
法二:按位异或
按位异或 相同的位不一样就为1,否则是0,注意不是指数(二进制)
//代码的可读性较差,但是面试题可能会考int main(){int a=3;int b=6;printf("brfore :a=%d b=%d\n",a,b);a=a^b;b=a^b;a=a^b;printf("after :a=%d b=%d",a,b);}
图解;假设是1个字节
运行结果:
创作不易,如果对你有帮助的话,给个免费的赞鼓励一下小编吧!🍗