
【计】 pass by value
according to; control; leave aside; press; push; refer to
【电】 press
cost; value; happen to; on duty
【医】 number; titer; titre; value
carry; convey; deliver; propagate; remit; transport
【计】 transfer; transmit; transport
【经】 transmission; transmit
在计算机编程领域,"按值传送"(Pass by Value)指调用函数时将实际参数的值复制一份传递给形式参数的操作机制。此时形参与实参占用不同的内存空间,函数内对形参的修改不会影响原始实参的值。其核心特征如下:
值复制过程
调用函数时,系统为形参分配独立内存空间,并将实参的值完整复制到该空间。例如:
void modify(int x) { x = 10; }// 修改的是副本x
int main {
int a = 5;
modify(a);// 实参a的值5被复制给形参x
// a仍为5(原始值未变)
}
内存示意图
实参a [地址0x1000] → 存储值5
│
↓ 复制
形参x [地址0x2000] → 存储值5(副本)
特性 | 按值传送 | 按引用传送 |
---|---|---|
内存操作 | 创建数据副本 | 传递原始数据地址 |
函数内修改影响 | 不影响原始数据 | 直接影响原始数据 |
适用数据类型 | 基本类型(int, float等) | 对象、数组等复合类型 |
内存开销 | 复制操作可能消耗额外内存 | 仅传递地址(固定大小) |
当函数无需修改原始数据时,值传递可避免意外篡改(如数学计算函数)。
整型、浮点型等基本数据类型默认采用值传递(如C/C++、Java的primitive types)。
不可变数据(Immutable Data)依赖值传递机制实现状态安全。
术语对照:
中文:按值传送 / 传值调用
英文:Pass by Value / Call by Value
标准定义参考ISO/IEC 9899:2018(C语言规范)§6.5.2.2函数调用语义。
注:值传递机制是理解程序副作用(Side Effect)控制的关键基础,尤其在与按引用传递(Pass by Reference)对比时需注意语言设计差异。
在编程中,“按值传送”(Pass by Value)是一种参数传递机制,其核心特点是:函数或方法接收的是参数的副本,而非原始变量本身。这意味着在函数内部对参数的修改不会影响外部的原始变量。以下是详细解释:
void modify(int a) {
a = 20;// 修改的是副本
}
int main() {
int x = 10;
modify(x);
printf("%d", x);// 输出仍是10
}
ref
关键字)。按值传送通过传递副本来隔离函数内外的数据,适用于保护原始数据、简化逻辑的场景。理解其机制有助于避免因参数传递方式不当引发的错误,尤其在涉及复杂对象或多线程编程时。
氨乙吡啶板上丛苯并磺酰唑布弗莱克斯法出发时间存储字节格式达克谢维奇氏纤维电源分配底边定时区杜邦分析法二氨一磷脂赶超杆菌状的谷粉蛾属假阴性反应经会阴膀胱切开术赖以为生的补助费裂化设备立即地址方式硫乳偶数存储单元排尘系统气脑疗法倾注浇桶任意债权溶液离子管生长活动士卒逃避服兵役者