黑马程序员技术交流社区

标题: 用一个指针来交换ab的值;怎么弄 大神给个代码 [打印本页]

作者: 沙睿    时间: 2015-6-14 22:11
标题: 用一个指针来交换ab的值;怎么弄 大神给个代码
用一个指针来交换a,b的值;写个代码,我就能懂思想了。或者把思想写出来也行
作者: Elors    时间: 2015-6-15 09:23
本帖最后由 Elors 于 2015-6-15 09:24 编辑
  1. void swap(int* p1, int* p2){
  2.         *p1 = *p1 + *p2;
  3.         *p2 = *p1 - *p2;
  4.         *p1 = *p1 - *p2;
  5. };
复制代码
给你个进化版
作者: 沙睿    时间: 2015-6-15 13:22
陈治盛 发表于 2015-6-15 07:23
你如果不给指针分配存储空间,指针只会可能指向a或者b,我觉得这和直接调用ab没有什么区别......如果给分配 ...

这只是我的想法,但没有去实现成功,但觉得可行,所以来这问问
作者: 沙睿    时间: 2015-6-15 13:24
Elors 发表于 2015-6-15 09:23
给你个进化版

这个我知道,看好我的想法,是用一个指针交换两个值,重点是这个。  其他方法我也会,例如不借助其他变量也能交换。
作者: hanxujie    时间: 2015-6-15 13:30
#include <stdio.h>

int main(int argc, const char * argv[]) {
   
   
    int a=5,b=6;  //定义两个变量
    printf("转换前:a=%d,b=%d\n",a,b);  //转换前有个打印
   
    int *pa=&a;  //定义一个指针指向&a
   
    int *pb=&b;  //定义一个指针指向&b
   
    int temp=0;  //定义一个变量作为转换媒介
   
    temp=*pa;    //实现转换
   
    *pa=*pb;
   
    *pb=temp;
   
    printf("转换后:a=%d,b=%d\n",a,b);  //转换后打印
    return 0;
}
作者: hanxujie    时间: 2015-6-15 13:32
这实际和定义一个变量转换一样,你看看吧,意义不大
作者: 沙睿    时间: 2015-6-15 23:25
hanxujie 发表于 2015-6-15 13:32
这实际和定义一个变量转换一样,你看看吧,意义不大

确实意义不大。不过我就是一直没实现。属于弄不出来就闹心那种。
作者: 毓秀钟灵    时间: 2015-6-16 00:07
围观学习




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