重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一种方法,用位运算
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站建设、曹妃甸网络推广、重庆小程序开发公司、曹妃甸网络营销、曹妃甸企业策划、曹妃甸品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供曹妃甸建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
#define swap(a,b) {a^=b;b^=a;a^=b;}
第二种方法,用加减
#define swap(a,b) {a+=b; b=a-b; a=a-b;}
要用函数实现两个数的交换,则函数参数必须定义为指针形式,否则函数中对数值的修改将不会影响主调函数,这是C语言的规则。
所以,以整型为例,自定义函数书写如下:
void
swap_int(int*a,int*b)
{
int
t;
t
=
*a;
*a=*b;
*b=t;
}
二楼的不错
#define swap(a,b) ((a)=(a)+(b);(b)=(a)-(b);(a)=(a)-(b))
这个巧妙使用两个变量
不需要新变量就实现了互换
注意:
在宏定义时
所有变量用()括起来
#include stdio.h
#define SWAP(a,b) a^=b, b^=a, a^=b
main()
{
int x = 3, y = 4;
printf("x = %d, y = %d\n", x, y);
SWAP(a, b);
printf("互换后 x = %d, y=%d\n", x, y);
}
您好,很高兴回答您的问题。
在程序设计中,若是交换两个数的话,是需要结合一个中间变量的。因为在赋值运算时,就是把右边数据的值赋值给左边变量,那么左边变量原来的值就消失了,为了避免出现这种值被覆盖的情况,一定要把原来变量的值先移出来,怎么移呢?就是把原来的值赋值给另一个中间变量。