首页 > 代码库 > 1交换

1交换

#include "swap.h"#include <stdio.h>#include <iostream>using namespace std;#define swap_m(x,y,t) ((t)=(x),(x)=(y),(y)=(t))        // #define后面不要加 分号;void swap(int x,int y);void swap_p(int *px,int *py);int main(){    int a,b,temp;    a=1;    b=10;    printf("交换前:a=%d,b=%d\n\n\n",a,b);    //方法1    printf("通过临时变量交换---->完成值传递交换\n");    temp=a;    a=b;    b=temp;    printf("交换后:a=%d,b=%d\n\n\n",a,b);    //方法2    a=1;    b=10;    swap(a,b);    printf("交换后:a=%d,b=%d\n\n\n",a,b);    //方法3    a=1;    b=10;    swap_p(&a,&b);//不要忘记&符号    printf("交换后:a=%d,b=%d\n\n\n",a,b);    //方法4    printf("通过define宏交换---->完成值传递交换\n");    a=1;    b=10;    swap_m(a,b,temp);    printf("交换后:a=%d,b=%d\n\n\n",a,b);    printf("hello world...\n");    system("pause");    return 0;}//默认按值传递,所以只会传a,b的拷贝,不会修改a,b本身void swap(int x,int y){    int temp;    temp = x;    x = y;    y =temp;    printf("拷贝---->完成值传递交换\n");}//指针也是值传递,只不过形参和实参指向的都是同一个内存地址,所以才能够修改实参的值...记住了哦void swap_p(int *px,int *py){    int temp;    temp = *px;    *px = *py;    *py = temp;    printf("指针---->完成值传递交换\n");}

 

1交换