阿Hun 2021-09-03 08:36 采纳率: 86.7%
浏览 38
已结题

C语言关于函数与构造函数指针问题

写了一个简单的代码,构造了一个函数,希望这个函数的作用是使形参值-1。
为什么普通的函数(我也不知道怎么称呼)改变不了形参a,b的值,当改为指针做形参就可以改变呢?
图一为不可改变;图二为改进后

img

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-09-03 08:58
    关注

    void f(int m,int n) 函数形参为值传递,这两个参数的作用域就在这个函数体内,在函数体内对两个参数值的改变,只在这个函数体内能起作用,当函数执行完返回到主函数时,这两个参数就被释放了,我们就找不到它了。
    void f(int *m,int *n) 函数的形参为指针,这两个指针指向了主函数中变量a b 的地址,在函数体内对两个指针 *m *n的操作,相当于就是直接对它们所指向变量的操作,当函数执行完返回到主函数时,这两个形参虽然被释放了,但对变量 a b 已经有了实质性的改变。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?