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

C语言关于函数与构造函数指针问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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 已经有了实质性的改变。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报