2.11 通过异或交换数据,实现数组反转功能

/**
 * 2.11 实现数组反转,在MAC系统调试出现奇观打印,todo备注一下
 * 有哪位朋友知道告诉我一下,谢谢
 */
#include 

void inplace_swap(int *x,int *y){
	*y = *x ^ *y;
	*x = *x ^ *y;
	*y = *x ^ *y;
}

void reverse_array(int a[],int cnt){
	int first,last;
	for(first = 0,last = cnt -1;first < last;first++,last--){
		inplace_swap(&a[first],&a[last]);
	}
}

int main(int argc, char const *argv[])
{
	int a[] = {1,2,3,4,5};
	int len = 5;
	reverse_array(a,len);
	for(int i = 0; i < len; i++){
		printf("%d,",a[i]);
	}

	return 0;
}

/**
 * 5,4,3,2,1,%
 */

 

你可能感兴趣的:(计算机理论与基础)