按值调用和按地址调用有什么区别

目录:

Anonim

主要区别 按值调用和按地址调用之间是, 在按值调用时,将实参的值复制到函数的形参中;在按地址调用时,将实参的地址复制到函数的形参中。

函数是一组多次执行特定任务的语句。我们可以将程序分成几个函数,并在必要时调用它们,而不是在 main 方法中编写所有程序语句。此外,这使程序可重用且更易于阅读。与函数相关的参数有两种类型:实参和形参。实际参数是调用函数时传递给函数的值,而形式参数是函数内部在调用函数时接收值的变量。在诸如“C”之类的编程语言中调用函数的两种方法是按值调用和按地址调用。

按值调用、按地址调用、函数

什么是价值调用

函数执行定义的任务并返回答案。如果返回类型为 void,它将执行任务并且不返回任何值。在按值调用中,实际参数被复制到函数的形式参数中。该函数使用形式参数中的值,而不是实际参数。因此,原始值不会改变。一个例子如下。

图 1:按值调用的程序

在上面的例子中,main 方法中有两个整数值,分别是“a”和“b”。交换函数获取这两个值。在函数内部,“a”值被复制到 x,而 b 值被复制到 y。因此,x 为 10,y 为 20。在函数内部,临时变量有助于交换这两个值。现在 x 是 20,y 是 10。执行函数后,控制权返回到主函数。打印“a”和“b”时,它打印原始值,即“a”为 10,“b”为 20。因此,这是按值调用。在这种情况下,实际值不会改变。但是,变化只反映在函数内部。

什么是按地址呼叫

按地址呼叫的另一个名称是 指针调用.通过地址调用方法将参数的地址复制到形式参数中。该函数使用地址来访问实际值。因此,函数内部所做的更改反映在原始值中。一个例子如下。

图 2:按地址调用的程序

在上面的例子中,主程序中有两个整数“a”和“b”。 “a”和“b”的地址传递给函数。该函数获取这些地址。 temp 变量有助于交换两个值。当函数使用地址对实际值进行操作时,函数内部的变化在主程序中是可见的。因此,即使实际的“a”和“b”值为 10 和 20,现在“a”值为 20,“b”值为 10。

按值调用和按地址调用的区别

定义

按值调用是通过将实参的实际值复制到函数的形参中来将参数传递给函数的一种方式,而按指针调用是通过将参数的地址复制到函数的形参来将参数传递给函数的一种方式功能。

功能

在按值调用中,实参的值复制到函数的形参中。但是,在按地址调用中,将实参的地址复制到函数的形参中。因此,功能是按值调用和按地址调用之间的主要区别。

对原始值的影响

按值调用和按地址调用之间的另一个主要区别是它们对原始值的影响。按值调用不会影响原始值,而按地址调用会影响原始值。

结论

按值调用和按地址调用的主要区别在于,按值调用是将实参的值拷贝到函数的形参中,而按地址调用是将实参的地址拷贝到函数的形参中。的功能。简而言之,按值调用不会改变原始值,而按地址调用会改变原始值。

参考:

1. “C 函数”。 Www.tutorialspoint.com,教程点,可在此处获得。

按值调用和按地址调用有什么区别