【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)

原创 2016年05月30日 17:11:55

     给定两个整型变量的值,将两个值的内容进行交换,现在我介绍几种不同的实现方法:


法1:在主函数里实现,这样操作这两个值时并未重新开辟空间,直接交换可以达到目的。


#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a = 10;
    int b = 20;
    
    int tmp = a;
    a = b;
    b = tmp;
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}


法2:考虑到重新写一个函数时,整型变量会开辟空间并将原来的值copy过来,而临时变量的周期我们是知道的。所以,传值不可能达到目的,只有传指针。(更加贴近于计算机的内部原理)


#include<stdio.h>
#include<stdlib.h>

void swap(int *pa,int *pb)
{
    int tmp = *pa;
    *pa = *pb;
    *pb = tmp;
}

int main()
{
    int a = 10;
    int b = 20;
    swap(&a, &b);
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}

   

法3:针对法2,我们想到引用。


#include<stdio.h>
#include<stdlib.h>

void swap(int &a, int &b)
{
    int tmp = a;
    a = b;
    b = tmp;
}

int main()
{
    int a = 10;
    int b = 20;
    swap(a, b);
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}


相关文章推荐

给定两个整形变量的值,将两个值的内容进行交换

对于给定的两个整形变量的值,将两个值的内容进行交换的问题,从两个方面设计解决方案,下面为具体的算法分析及程序。算法一:     先建立两个整形变量,并进行初始化。同时创建一个临时变量,通过这个自定义变...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C语言之交换两个整型变量的值(四种方法)

C语言中有一道题目是交换两个整型变量的值,这是一道非常简单的题目,那么一共有几种方法呢?以下是我整理的四种方法,是在MAC系统x-code环境下编译并运行成功的,以下为截图: 方法一:通过引入第三方...

给定两个整形变量的值,将两个值的内容进行交换

交换a,b两个变量的值,顾名思义,就是将b的值赋给a,之后再将a的值赋予b,那么问题就出现了,将b的值赋予a时b的值已经发生了变化。这时就要定义一个中间变量来存放b的值,利用中间变量来进行交换。 i...

程序猿之---C语言细节7(检测两个整型相加是否溢出)

主要内容:检测两个整型相加是否溢出 #include #include int main(int argc, char *argv[]) { /* * a和b为非负整型变量,检测a+b是...

不借助第三方变量,交换两个整型数x和y的值

主要思路是用其中一变量存储x,y的运算值,然后逆运算得到 /***********************************************************...

交换两个整型数各种方法总结

交换两个整型数是C/C++中最常见的操作。 实现这个操作的方法很多。 最基本的方法就是使用一个临时变量,具体的代码如下: int a,b; int tmp; tmp=a; a=b;...

利用C语言重定向函数freopen实现交换两个文本文件内容

/* ** Autor: Wangzhicheng ** E-Mail: 2363702560@qq.com ** Date: 2012/10/4 ** Description: 交换两个文件内...

求两个有序整型数组元素和的第K大值

今天与人讨论问题,发现一个很有意思的题目:给定两个有序的整型数组,要求在最优的情况下找到两个数组元素求和后的第K大的值。 1、刚开始遇到这个问题,我直观的想法就是分配一个数组保存两个数组元素的和,然...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)
举报原因:
原因补充:

(最多只允许输入30个字)