我爱故我在(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 Bibtex4Word 引用中文文献
  • ¥20 用opencv c/c++ 转换成灰度图,然后做一下直方图均衡,输出mp4文件
  • ¥20 matlab中的双层数值积分
  • ¥50 服务器打印水晶报表问题
  • ¥30 gradle环境下javafx项目如何使用druid连接池
  • ¥15 服务器打印水晶报表问题
  • ¥18 深度学习tensorflow1,ssdv1,coco数据集训练一个模型
  • ¥100 关于注册表摄像头和麦克风的问题
  • ¥30 代码本地运行正常,但是TOMCAT部署时闪退
  • ¥15 关于#python#的问题