我爱故我在(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日

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格