·
#include __FILE__

你这俩方法可以的啊,不考虑溢出和类型是没问题的

Replies
3
void swap_XOR(int* a, int* b) {
	*a = *a ^ *b;
	*b = *a ^ *b;
	*a = *a ^ *b;
}

void swap_add(int* a, int* b) {
	*a = *a + *b;
	*b = *a - *b;
	*a = *a - *b;
}

void main() {
	int a = 5, b = 2;

	swap_XOR(&a, &a);
	printf("%d %d\n", a, b);//输出0 2

	swap_add(&b, &b);
	printf("%d %d\n", a, b);//输出0 0
}

你这故意传一个变量的地址,那自然会出问题,这种行为应该是ub,实际上它们是可以用的