构建一个swap函数交换数值

#include<stdio.h>
int swap(int*a,int*b)//声明函数为swap函数
   {int c;
    *b=c;
    *b=*a;
    *a=c;}//利用第三个变量将数值交换
    main()
   {
    int*a,*b,p,q;
    p=1;
    q=0;
    a=&p;b=&q;//将数值附给a和b
    swap(a,b);
    printf("%d,%d",p,q);//输出最后换值后的结果·
    return 0;
    }

0,1
--------------------------------
Process exited after 0.2916 seconds with return value 0
请按任意键继续. . .

总结;编程序的时候在如何把两个数的数值转换想了半天,后来看了上学期学的才想起来要利用第三数来转换,

后面的程序没有太大的问题,符号这次也没有错误,还要多复习以前的知识。

二:void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?

    这个程序是一个错误的程序,其中swap函数中指针变量m并没有被赋值,它指向的是一个未知的地址,所以容易无法和其他地址交换。

   而且指针在传递时是值传递但这个程序传递的是地址。

三、void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?

这个程序因为把改变值的变量作为参数,所以运行以后的两个整形并没有交换数据。,以无法交换。

 

posted @ 2017-03-22 13:27  伊靖雯  阅读(507)  评论(3编辑  收藏  举报