按值调用(call by value)和编程中的引用调用(call by reference in programming)的区别

详情见全文

二是在按值调用中,将实际参数的副本传递给相应的形式参数;而在引用调用中,实际参数的位置或地址被传递给形式参数。正因为如此,在形式论证中所做的任何改变也会反映在实际论证中。因此,在使用按引用调用时应小心,因为很容易在形式参数中意外地进行更改。

007Ys3FFgy1gsecky0f1yg609q04p0st02值调用通常被用作大多数C语言的默认函数,特别是C++、PHP、Visual Basic、NET、C语言和RealBasic。但是,它们中的大多数通过为按引用调用参数提供特殊语法来支持按引用调用。不过,在c中,所有函数参数都是按值传递的,因为c不像其他语言那样支持引用。原因是在c中,调用函数和被调用函数不共享任何内存。因为它们都有自己的副本,所以被调用函数不能直接改变调用函数中的变量。它只能修改自己的个人副本。所以,引用调用在这里是没有意义的。

编程中按值调用和按引用调用的比较:

 

按值调用 通过引用调用
说明 将数据或值传递给其他函数的函数 将数据或值传递给其他函数的函数
使用的语言 基于C语言的程序设计语言 基于C语言的编程语言,如C++,java,而不是C本身
目的 将参数传递给另一个函数 将参数传递给另一个函数
论据 实际参数的副本传递给相应的形式参数 引用将实际参数的位置或地址传递给形式参数
变化 更改是在自己的个人副本中进行的。函数内部所做的更改不会反映在其他函数上 形式论证中的任何变化也会反映在实际论证中。函数内部所做的更改也反映在函数外部。
价值修正 不修改原始值。 修改原始值。
内存位置 实际参数和形式参数将在不同的内存位置创建 实际参数和形式参数将在同一内存位置创建
安全 实际参数仍然是安全的,不能被意外修改。 实际参数不安全。它们可能会被意外修改。因此,在处理参数时需要小心。
违约 大多数编程语言中的缺省,如C++、PHP、VisualBasic、Net、C语言和realbasic公司 大多数编程语言都支持,但不是默认的。

 

  • 发表于 2021-07-12 18:35
  • 阅读 ( 232 )
  • 分类:通用

你可能感兴趣的文章

外面的(out)和参考c#(ref in c#)的区别

...数。它们是有值参数、输出参数和参考参数。值参数用于按值将参数传递到方法中。引用参数用于通过引用将参数传递给方法。输出参数用于将结果从方法返回。在C#中,out关键字用于输出参数,ref关键字用于引用参数。C中out和...

  • 发布于 2020-10-18 20:42
  • 阅读 ( 233 )

这(this)和超级java(super in java)的区别

...数指定id和name可以设置实例变量。 关键字“this”可用于调用当前类方法。参考给定的java程序。 公共课本演示{ 公共静态void main(String[]args){ Myclass Myclass=新建Myclass(); 我的class.B(); } } 我的课{ 公共空间A(){ System.out.pri...

  • 发布于 2020-10-19 18:17
  • 阅读 ( 379 )

系统调用(system call)和图书馆呼叫(library call)的区别

关键区别-系统调用与库调用 系统调用和库调用与计算机的操作系统有关。计算机可以在两种模式下运行,即用户模式和内核模式。系统调用和库调用的关键区别在于,系统调用是内核提供的进入内核模式访问硬件资源的函数...

  • 发布于 2020-10-20 00:18
  • 阅读 ( 573 )

按值调用(call by value)和通过引用调用(call by reference)的区别

关键区别——按值调用与按引用调用 许多编程语言都使用函数。函数是执行特定任务的一组语句。主代码可以分为几个函数并调用它们。调用函数有两种方法,如按值调用和按引用调用。在按值调用方法中,变量的副本被传...

  • 发布于 2020-10-20 00:32
  • 阅读 ( 492 )

阿贾克斯(ajax)和jquery公司(jquery)的区别

...eshing the web page. When working with AJAX, every single step needs to be programmed in doing an AJAX call. AJAX is a very powerful tool but it cannot be utilized with simple HTML. To use AJAX, you need to have a scripting language. Whenever an AJAX call is made, a new connection to the server is m...

  • 发布于 2020-10-27 15:54
  • 阅读 ( 211 )

bdc公司(bdc)和调用事务(call transaction)的区别

BDC与Â 调用事务 BDC或批处理数据通信和调用事务是接口技术的两种方式。在BDC和call事务之间可能会遇到许多不同之处。 在比较两者时,批处理数据通信是最古老的接口技术。BDC接口最重要的方面是异步处理。这意味着它用于多...

  • 发布于 2021-06-23 07:06
  • 阅读 ( 145 )

多孔性(porosity)和渗透(permeability)的区别

...(porosity)? 孔隙度测量岩石之间的空隙。它被认为是岩石中的空隙(或孔隙)体积与总体积的比值,通常用分数或百分比表示。由于流体可以占据岩石之间的自由空间,孔隙度也是衡量岩石能容纳多少流体的一个指标。 There are se...

  • 发布于 2021-06-27 06:57
  • 阅读 ( 151 )

援引(invoke)和唤起(evoke)的区别

主要差异调用(main difference invoke) vs. 唤起(evoke) 虽然调用和调用声音看起来很相似,但是调用和调用之间有细微的区别。召唤的意思是请求支持或援助,而召唤的意思是召唤或召唤。这是invoke和evoke之间的主要区别。我们...

  • 发布于 2021-06-27 13:45
  • 阅读 ( 630 )

应用程序编程接口(api)和系统调用(system call)的区别

API和系统调用的主要区别在于,API是一组协议、例程和函数,允许在各种应用程序和设备之间交换数据,而系统调用是一种方法,允许程序从内核请求服务。 API由协议和函数组成,这些协议和函数定义了不同组件之间的通信方...

  • 发布于 2021-07-01 06:58
  • 阅读 ( 448 )

传递值(pass by value)和通过引用传递(pass by reference)的区别

...时,它只访问副本。因此,对原值没有影响。 Figure 1: C program with pass by value 在上面演示的程序中,变量值存储整数5。findNewValue是一个函数。值被传递给该函数。在函数中,值被复制到一个名为newValue的新内存位置。然后函数返...

  • 发布于 2021-07-01 08:19
  • 阅读 ( 469 )
hvg7673
hvg7673

0 篇文章

相关推荐