不创建临时变量交换两个数的值
法1:
#include<stdio.h>
#include<windows.h>
int main()
{
int x = 100;
int y = 200;
printf("before:%d %d\n", x, y);
x = x + y;
y = x - y;
x = x - y;
printf("after:%d %d\n", x, y);
system("pause");
return 0;
}
法2:(任何数和0异或等于它本身)
#include<stdio.h>
#include<windows.h>
int main()
{
int x = 100;
int y = 200;
printf("before:%d %d\n", x, y);
x ^= y;//x=x^y; x->x^y
y ^= x;//y=y^x-> y=y^x^y y->x 支持交换律
x ^= y;//x=x^y-> x=x^y^x x->y
printf("after:%d %d\n", x, y);
system("pause");
return 0;
}
本文介绍了两种在C语言中不使用临时变量实现数值交换的方法。第一种利用加减运算,第二种利用位运算中的异或操作,展示了代码实现并解释了其工作原理。
1389

被折叠的 条评论
为什么被折叠?



