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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 403295277 中级黑马   /  2015-8-28 21:16  /  569 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//求大神指教。。。。请问void changNum5函数交换地址不能交换存储的内容?
#include "stdio.h"
void changNum1(int x,int y);
void changNum2(int x,int y);
void changNum3(int *x,int *y);
void changNum4(int *x,int *y);
void changNum5(int *x,int *y);

int main(){
   
    int a = 5;
//   int *a1 = &a;
    int b = 4;
//   int *b1 = &b;
    printf("交换前a = %d,b = %d\n",a,b);
    printf("---------\n");
    printf("a的地址是:%p\nb的地址是:%p\n",&a,&b);
    printf("---------\n");

    changNum1(a,b);
    printf("交换后\na = %d,b = %d\n",a,b);
    printf("a的地址是:%p\nb的地址是:%p\n",&a,&b);
    changNum2(a,b);
    printf("交换后\na = %d,b = %d\n",a,b);
    printf("a的地址是:%p\nb的地址是:%p\n",&a,&b);
    changNum3(&a,&b);
   
    printf("交换后\na = %d,b = %d\n",a,b);
    printf("a的地址是:%p\nb的地址是:%p\n",&a,&b);
    changNum4(&a,&b);
   
    printf("交换后\na = %d,b = %d\n",a,b);
    printf("a的地址是:%p\nb的地址是:%p\n",&a,&b);
    changNum5(&a,&b);
   
    printf("交换后\na = %d,b = %d\n",a,b);
    printf("a的地址是:%p\nb的地址是:%p\n",&a,&b);
   
    return 0;
}
void changNum1(int x,int y){
   
    int temp;
    temp = x;
    x = y;
    y = temp;
}
void changNum2(int x,int y){

    x = x + y;
    y = x - y;
    x = x - y;
}
void changNum3(int *x,int *y){

        int temp = *x;  //  int *temp;
        temp = *x;      //  temp=x;
        *x = *y;        //  x=y;
        *y = temp;      //  y=temp;
  }
void changNum4(int *x,int *y){
   
    *x = *x + *y;
    *y = *x - *y;
    *x = *x - *y;

}
void changNum5(int *x,int *y){
   
      int *temp;
      temp=x;
      x=y;
      y=temp;


}

0 个回复

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