构建一个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;}为何无法实现交换?

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

 

转载于:https://www.cnblogs.com/yjwyjw/p/6599375.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值