写了一个简单的代码,构造了一个函数,希望这个函数的作用是使形参值-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 已经有了实质性的改变。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
- ¥15 Python动态规划:图2箭头指向的代码如何理解?太抽象了
- ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
- ¥30 求给定范围的全体素数p的(p-2)的连乘积
- ¥15 VFP如何使用阿里TTS实现文字转语音?
- ¥100 需要跳转番茄畅听app的adb命令
- ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
- ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
- ¥50 opencv4nodejs 如何安装
- ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument