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

举报
红目香薰 发表于 2022/10/28 00:40:13 2022/10/28
【摘要】 ​目录值传递:引用传递:值传递与引用传递示例:形参:实参:形参与实参示例:值传递与引用传递区别-示例题:答案解析:值传递:在函数范围内,改变变量值的大小,都不会影响到函数外边的变量值。引用传递:在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址。也就是说值传递只传递数值,引用传递传递的是内存地址。如果内存地址上的值发生改变,那么这个值就跟着变化。值传递与引用传递示例...

目录


值传递:

引用传递:

值传递与引用传递示例:

形参:

实参:

形参与实参示例:

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

答案解析:



值传递:

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

引用传递:

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

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

值传递与引用传递示例:

编辑

形参:

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

实参:

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

形参与实参示例:

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

编辑



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

函数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。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。