我爱故我在(1314) 2021-11-24 10:08 采纳率: 66.7%
浏览 47
已结题

为什么调用swap时实参变量前不加'*'?

img


不能通过执行调用函数改变实参指针变量的值,但可改变实参指针变量指向,所以为什么不加*?

  • 写回答

1条回答 默认 最新

  • 二当家的白帽子 后端领域优质创作者 2021-11-24 11:09
    关注

    swap函数的形参是指针,所以实参传入的肯定是指针。*是取值,如果仅仅把指针里的值传到swap里,就无法交换实参的值了。举个例子,如果加*,就是把作业给他抄一份过去传入函数,他自己再怎么折腾,都影响不了被抄的作业本。而直接把指针传递过去,就是把作业本直接借给函数,函数里可以修改作业本上的内容。
    q1,q2,q3是指针,相当于三个盒子,三个空间的地址,你要把空间的地址给swap,它才能修改里面放什么东西;如果仅仅把盒子,空间里的东西传递给swap,它是没办法修改盒子和空间里放什么内容的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 修改了问题 11月24日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line