黑马程序员技术交流社区

标题: C中经典的交换两个数的值实例 [打印本页]

作者: 小腼腆不是错    时间: 2015-8-23 21:38
标题: C中经典的交换两个数的值实例
#include <stdio.h>

//不能交换
void swap1(int a,int b){

    //此处实质上是形参a和b值得交换,
    //跟实参没有关系
    int temp;
     temp = a;
     a = b;
     b = temp;

}

//怎么交换正确的交换两个变量的值,不能交换
void swap2(int *p,int *p1){

    //形参变量的地址进行的交换
    int *temp;
     temp = p;
     p = p1;
     p1 = temp;

}

//终级解决方案
void swap3(int *p,int *p1){
     
     //通过指针直接修改变量的值了
    int temp;
     temp = *p;
     *p = *p1;
     *p1 = temp;
     
}

int main(int argc, const char * argv[]) {
   
     int a = 4,b = 5;  // a = 5,b = 4
     printf("交换前:a = %d,b = %d\n",a,b);
     swap3(&a, &b);
     printf("交换后:a = %d,b = %d\n",a,b);
     
     
     
     return 0;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2