永发信息网

c++新手问题

答案:3  悬赏:20  手机版
解决时间 2021-11-16 05:52
  • 提问者网友:呐年旧曙光
  • 2021-11-15 19:40
c++新手问题
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-11-15 21:00
你的第一个函数是用来在内部改变指针指向的地址而已,并没有真正改变i,j的值,指向也没有改变,
0018FF44 0018FF40 //开始的时候pi,pj地址
0018FF40 0018FF44 //在函数里面实现交换后 pi,pj地址发生了变化,如果在里面输出可以实现交换,但在主函数体里就不行了,因为你这样做相当于值传递而已
0018FF44 0018FF40 //函数过后,地址是没有变换的
交换之前 i:10 j:20
交换之后 i:20 j:10
Press any key to continue

不懂可以追问追问这个。。。其实我看出来了 但是程序是我的老师给我的 不知道他为什么定义了两个函数 现在我明白了。。。他就是随便写的一个。。让我区分区别。。。嘿嘿 谢谢你
全部回答
  • 1楼网友:罪歌
  • 2021-11-15 22:37
ptrswap(pi,pj)最后的结果就是pi指针指向j的区域,pj指针指向i的区域,但是你输出的是i和j,不是*pi和*pj。如果是*pi和*pj的话,就会是20和10了。
  • 2楼网友:野慌
  • 2021-11-15 21:08
void ptrswap (int *&a,int *&b)
{
int *tmp=a;
a=b;
b=tmp;
}
把这个去掉试试
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯