call by value
英 /kɔːl baɪ ˈvæljuː/美 /kɔl baɪ ˈvælju/
词组
按值调用;传值调用
词义说明
call by value 是计算机科学中的术语,指函数调用时,将实参的值复制一份传递给形参。其本义强调“值”的传递,即传递的是数据本身,而非数据的引用或地址。由此引申出两个相关义项:一是指这种参数传递机制本身,常见于编程语言教材和文档;二是指采用这种机制的编程语言特性,例如说“C 语言采用 call by value”。这两个义项紧密相关,后者是前者在语言层面的体现。该术语不用于日常口语,仅出现在技术语境中。
词源解析
call 源自中古英语 callen,意为“呼叫、称呼”;by 源自古英语 bī,表示“通过、凭借”;value 源自拉丁语 valēre(有价值),经古法语 value 进入英语。三者组合成固定短语,字面义为“通过值来调用”。构词逻辑清晰:call 指函数调用,by value 表示传递方式。记忆时可联想“传递的是值本身”,与 call by reference(传引用)相对。该短语是编程领域的标准术语,构词方式属于介词短语作方式状语。
使用场景
该词组主要用于计算机编程领域,尤其是编程语言教材、技术文档、学术论文和开发者社区讨论中。在学术写作中,它用于精确描述参数传递语义;在技术文档中,常与 call by reference 对比出现;在日常技术交流中,开发者可能简称为“传值”。语气中性、专业,不带有感情色彩。在商务邮件或法律文本中几乎不会出现,除非涉及软件技术规格说明。文学作品中不使用。
语法要点
call by value 是名词性短语,通常作主语、宾语或介词宾语。常见句型包括“Languages like C use call by value.”、“In call by value, the function receives a copy of the argument.”。它不可直接作动词使用,不能说“I call by value the function”。易错点在于混淆 call by value 与 call by reference:前者传递副本,后者传递引用。此外,该短语通常不加冠词,如不说“a call by value”,但可说“the call-by-value mechanism”。
近义辨析
与 call by value 意思相近的词组是 pass by value,两者常互换使用,但 call by value 更强调调用机制,pass by value 更强调传递动作。另一个相关词是 call by reference(传引用),两者是对立概念,不可混用。在描述语言特性时,说“Java uses pass by value”也常见,但严格来说 Java 对对象传递的是引用的值,属于 call by value 的变体。选择使用时,call by value 更正式、更学术化,pass by value 稍显口语化。
注意事项
该词组属于技术术语,语域较高,仅适用于编程语境。常见误用包括:将其用于非技术场景,如“call by value 地讨论问题”,这不符合英语习惯;混淆 call by value 与 call by reference,导致技术描述错误;在正式写作中错误添加冠词,如“a call by value”。此外,该短语通常不用于形容人,也不带褒贬色彩。在翻译时,中文常译为“传值调用”或“按值调用”,两种译法均可。
高频搭配
- call by value mechanism
- 传值调用机制
- pass by value
- 按值传递
- call by reference
- 传引用调用
- call by value semantics
- 传值调用语义
- call by value parameter
- 传值参数
- call by value vs. call by reference
- 传值调用与传引用调用对比
- use call by value
- 使用传值调用
句子示例
| In C, all function arguments are passed by call by value. | 在C语言中,所有函数参数都是按值调用传递的。 |
| The textbook explains the difference between call by value and call by reference. | 这本教材解释了传值调用和传引用调用的区别。 |
| Call by value means the function cannot modify the original variable. | 传值调用意味着函数无法修改原始变量。 |
| Some languages, like Java, use call by value even for object references. | 一些语言,如Java,即使对对象引用也使用传值调用。 |
| The compiler implements call by value by copying the argument onto the stack. | 编译器通过将参数复制到栈上来实现传值调用。 |
| Understanding call by value is essential for debugging pointer-related bugs. | 理解传值调用对于调试指针相关的错误至关重要。 |