zl程序教程

您现在的位置是:首页 >  其它

当前栏目

值传递与引用传递区别——配套习题-形参与实参(理论解析)

解析 区别 引用 传递 理论 习题 参与 实参
2023-09-14 09:05:01 时间

目录

值传递:

引用传递:

值传递与引用传递示例:

形参:

实参:

形参与实参示例:

值传递与引用传递区别-示例题:

答案解析:


值传递:

在函数范围内,改变变量值的大小,都不会影响到函数外边的变量值。

引用传递:

在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址。

也就是说值传递只传递数值,引用传递传递的是内存地址。如果内存地址上的值发生改变,那么这个值就跟着变化。

值传递与引用传递示例:

形参:

形参全称为“形式参数”,目的是用来接收调用该函数时传递的参数。

实参:

实参,全称为"实际参数"。顾名思义就是实际存在的参数。在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”。

形参与实参示例:

从下图就可以很明显看出来形与实的区别。

值传递与引用传递区别-示例题:

函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为__(1)__;若以传引用方式调用g,则函数f的返回值为__(2)__ 。

f()函数

public int f(int x){
int a=5;
a=g(x);
return a+x;
}

g()函数

public void g(int y){
y=y+1;
return y;
}

(1)A、3                        B、4                        C、6                        D、7

(2)A、3                        B、4                        C、6                        D、7

答案解析:

这里先是传递了一个形参,那么就是正常的传递,形参x=1,传递到函数g当中,y=1+1;那么y=2正常传递回f函数,a=2,故而又最终(1)选项得a+x=2+1=3。选择A。

使用引用方式调用g,那么既然引用传递传递的就是实际的地址,我们讲x=1传递到函数g当中,发现原本的x就相当于y处理了,y=x=1,那么y=y+1也就是y=1+1;这里的y的结果是2,也就是修改了x上地址的值,故而return y就是return 2,我们在函数f中a=2是不变的,但是其中x的值变成了y的值,y是2,y=x,那么x=2,所以出现a+x=2+2,故而(2)结果是4.选择B。