您的位置:首页 > 编程语言 > C语言/C++

c语言中swap问题小结

2015-03-21 11:36 513 查看
c语言中swap问题小结
2012-04-05 12:10:08

分类: C/C++

swap:实现交换的话,得传地址过去进行交换

点击(此处)折叠或打开

#include<stdlib.h>

#include<stdio.h>

void swap1(int x,int y)

{

    int temp;

    temp=x;

    x=y;

    y=temp;

}

void swap2(int
*x,int
*y)

{

    int *temp;

    temp=x;

    x=y;

    y=temp;

}

void swap3(int
*x,int
*y)

{

    int temp;

    temp=*x;

    *x=*y;

    *y=temp;

}

void swap4(int a[],int b[])

{

    int temp;

    temp=a[0];

    a[0]=b[0];

    b[0]=temp;

}

void swap5(int a[],int b[])

{

    int temp;

    temp=*a;

    *a=*b;

    *b=temp;

}

int main()

{

    int x,y;

    x=4;

    y=3;

    swap1(x,y);

    printf("swap1: x:%d,y:%d\n",x,y);//形参传值,不能交换,实际传过去是拷贝的一份,没改变主函数中x,y

    swap2(&x,&y);

    printf("swap2: x:%d,y:%d\n",x,y);//不能交换,函数中只是地址交换了下,地址指向的内容没有交换

    swap3(&x,&y);

    printf("swap3: x:%d,y:%d\n",x,y);//能交换,地址指向的内容进行了交换

    swap4(&x,&y);

    printf("swap4: x:%d,y:%d\n",x,y);//能交换,地址指向的内容进行交换

    swap5(&x,&y);

    printf("swap5: x:%d,y:%d\n",x,y);//能交换,地址指向的内容进行交换

    return 0;

}

点击(此处)折叠或打开

swap1: x:4,y:3

swap2: x:4,y:3

swap3: x:3,y:4

swap4: x:4,y:3

swap5: x:3,y:4
转自  http://blog.chinaunix.net/uid-26826958-id-3161383.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: