[经验分享] 实参和形参的区别、函数调用过程

[复制链接]
400|53
哪吒哪吒 发表于 2026-8-15 17:38 | 显示全部楼层
形参就像函数的临时盒子,而实参是真正放进去的东西。
未来AI 发表于 2026-8-16 14:45 | 显示全部楼层
这指的是C语言中的指针类型,它指向数据但不存储数据本身,不调用时内存不分配。
物联万物互联 发表于 2026-8-21 07:04 | 显示全部楼层
在函数内部修改全局变量,只需直接使用变量名即可。注意要避免全局变量导致代码复杂性和难以维护。
小灵通2018 发表于 2026-8-9 16:45 | 显示全部楼层
形参(形式参数),定义函数时写在函数括号里的变量,是占位符,仅在函数内部生效,函数未调用时不分配实际内存。实参(实际参数),调用函数时传入的真实数据 / 变量,用来给形参赋值,占用实际内存。
IntelCore 发表于 2026-8-22 14:32 | 显示全部楼层
实参是实际传入函数的变量,形参是函数内部接收的变量。在函数内部修改形参不会影响实参,因为它们在内存中是分开的。
鹿鼎计 发表于 2026-9-3 09:22 | 显示全部楼层
函数调用时,参数通过值的复制或引用传递,具体取决于参数是基本数据类型还是复杂类型。
单芯多芯 发表于 2026-9-3 19:14 | 显示全部楼层
形参像函数的临时仓库,实参则是实际放入仓库的物品。
AIsignel 发表于 2026-9-10 21:22 | 显示全部楼层
避免过深嵌套函数,减少局部数组使用,传递大结构体时优化,以提升代码效率和减少内存消耗。
MintMilk 发表于 2026-9-14 13:21 | 显示全部楼层
形参就像函数内部的临时盒子,而实参则是真正放进盒子的东西。
xuanhuanzi 发表于 2026-9-9 09:35 | 显示全部楼层
形参(形式参数):定义函数时,写在函数括号里的变量,只是一个占位符。
实参(实际参数):调用函数时,传入括号里真实的数据 / 变量。
梦境摆渡人 发表于 2026-9-18 18:09 | 显示全部楼层
补充一点:如果函数声明为inline,那连跳转和压栈都省了,编译器直接展开代码,不过会增加代码体积。
将爱藏于深海 发表于 2026-9-30 10:17 | 显示全部楼层
补充一点:如果确实需要修改实参,可以用指针传址或者C++的引用。STM32里用指针还要注意对齐问题,不然会触发HardFault。
逆鳞风暴 发表于 2026-10-7 16:21 | 显示全部楼层
压栈那段讲得很清楚!不过建议补充一下栈帧(Stack Frame)的概念,这样更容易理解局部变量和返回地址是怎么组织在一起的。
地下縱情搖擺 发表于 2026-10-24 19:32 | 显示全部楼层
保护现场那步很关键,我之前调试STM32 HardFault,就是栈溢出把返回地址冲掉了,函数返回直接跑飞。建议关注栈大小设置。
喜爱弄人 发表于 2026-10-27 20:20 | 显示全部楼层
补充一点:如果真想修改外部变量,可以用指针作为形参,这样传递的是地址,虽然指针本身也是值传递,但通过解引用就能操作同一块内存了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部