A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#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;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马