C语言基础—实现两个变量交换的三种方法

来源:互联网 发布:首席数据官 招聘 编辑:程序博客网 时间:2024/05/22 08:22

C语言程序执行中,当定义了变量后,就相当于在内存中开辟了一部分的存储空间,不同空间存储的内容各异。在实际应用中,常常需要交换不同存储空间的内容,即变量内容的交换。用不同的思路,都能实现两个变量的交换。下面简单地介绍了三种实现方法:

/*

方法一 思路:

1定义一个中间变量temp;

2将变量x的值存储到temp中;

3将变量y的值存储到x中;

4将temp中的x的值存储到y中;

优点:代码简单易懂;

*/

void changeValue_One(int x,int y)

{

    printf("x = %d,y = %d\n",x,y);

    int temp = x;

    x = y;

    y = temp;

    printf("x = %d,y = %d\n",x,y);

    

}


/*

方法二 思路:

1将变量x+y的和存储到x中;

2用变量x减去变量y存储到y中;

3用变量x再减去变量y存储到x中;

优点:内存不用重新分配存储空间;

缺点:当变量x或者y过大时,相加的和容易溢出分配的存储空间;

*/


void changeValue_Two(int x,int y)

{

    printf("x = %d,y = %d\n",x,y);

    

    x = x + y;

    y = x - y;

    x = x - y;

    printf("x = %d,y = %d\n",x,y);

    

}

/*

方法三 思路:

1分别让变量x与y的异或值分别赋给x,y,x;

优点:不用重新开辟内纯空间;

缺点:方法新颖,代码较难懂;

*/


void changeValue_Three(int x,int y)

{

    printf("x = %d,y = %d\n",x,y);

    x = x ^ y;

    y = x ^ y;

    x = x ^ y;

    printf("x = %d,y = %d\n",x,y);

    

}



0 0