两数值交换-异或操作符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
void swap(int a, int b){
	int temp = a;
	a = b;
	b = temp;
}

int main(){
	int a = 10;
	int b = 20;
	printf("a=%d,b=%d\n", a, b);

	swap(a, b);
	printf("a=%d,b=%d\n", a, b);

	a = a^b;
	b = a^b;
	a = a^b;
	printf("a=%d,b=%d\n", a, b);

不设置中间变量时,使用按位异或将十进制数转变为二进制数,相异取或,取其结果。

程序中利用swap函数将两个数的值交换,不能完成该目的。函数中定义的形参只在函数内部有效,若使用地址则改变不了值。实参的地址与形参的地址不同。

猜你喜欢

转载自blog.csdn.net/qq_44370562/article/details/88621889
0条评论
添加一条新回复