1. 首页 > 电脑教程 > 不用第三个变量,实现两个输入参数的交换

不用第三个变量,实现两个输入参数的交换

问题描述:编写一个函数swap,输入两个参数a, b,要求函数中不能够使用第三个变量,函数输出交换之后的a和b。思路:如果程序中不能够使用另外的第三个变量的话,只能够通过所谓的“技巧"来实现。这里使用的技巧如下:a ^ 0 = a. a ^ a = 0(异或运算)实现代码:#include #include // 交换两个数据,但是不适用第三个变量 void swap(int* a, int* b) { *b = (*a) ^ (*b); *a = (*a) ^ (*b); *b = (*a) ^ (*b); } int main() { int a = 3; int b = 4; printf("before swap, a = %d, b = %d\n", a, b); swap(&a, &b); printf("after swap, a = %d, b = %d\n", a, b); return 0; }

声明:希维路由器教程网提供的内容,仅供网友学习交流,如有侵权请与我们联系删除,谢谢。ihuangque@qq.com
本文地址:https://www.ctrlcv.com.cn/diannao/169323124410616.html