交换两个整型变量的值
#include<stdio.h>#include<stdlib.h>intmain(){inta=1;intb=2;inttmp=a;a=b;b=tmp;printf("a=%db=%d\n",a,b);system("pause");return0;}
上面是用创建中间变量的方法交换,下面是不创建中间变量的另一种方法:
a=a+b;b=a-b;a=a-b;当然还可以用异或:a=a^b;b=a^b;a=a^b;以上都是在main函数中实现,下面一种方法创建了函数,用指针来交换两个整型值:#include<stdio.h>#include<stdlib.h>voidSwap(int*p1,int*p2){inttmp=*p1;*p1=*p2;*p2=tmp;}intmain(){inta=1;intb=2;Swap(&a,&b);printf("a=%db=%d\n",a,b);system("pause");return0;}然而如果Swap函数写成下面这样是错误的,只是进行了值传递,上面的方法传的是地址voidSwap(intnum1,intnum2){inttmp=num1;num1=num2;num2=tmp;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。