永发信息网

请高手帮我分析一下下面的这个程序!..#include void swap(int *p1,int

答案:2  悬赏:40  手机版
解决时间 2021-02-01 14:07
  • 提问者网友:且恨且铭记
  • 2021-02-01 08:57
请高手帮我分析一下下面的这个程序!..#include void swap(int *p1,int
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-02-01 09:16
void swap(int *p1, int *p2){ int *p; p=p1; p1=p2; p2=p;}有问题:(1)函数传递必须遵循“值传递”原则!就是:1)形参为值时,函数运行时将构建与实参一样的副本,所以形参为值时值得改变传不出来!2)形参为指针时,也同样遵循“值传递”原则,只不过函数运行时系统为他构造的是一个值等于“指针变量存储的地址”所以形参为指针时可以传出来!再来看看你的程序,你让指针的值发生变化(就是使得值发生变化,那肯定改变传不出来哦!)正确的做法(使得指针所指的变量的值发生变化):void swap(int *p1, int *p2){ int *p; *p=*p1; *p1=*p2; *p2=*p;}你的输入有问题不是这样输入,你可以加一条printf(a=%d, b=%d,a,b);检验一下!
全部回答
  • 1楼网友:山君与见山
  • 2021-02-01 09:49
这个解释是对的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯