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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 值传递与引用传递区别——配套习题-形参与实参(理论解析)

值传递:

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


引用传递:

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


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


值传递与引用传递示例:

image.png


形参:

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


实参:

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


形参与实参示例:

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


image.png


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

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

相关文章
|
2月前
|
存储 运维 安全
SaaS多租户和单租户的区别解析
SaaS多租户的系统维护成本低,多租户系统在升级时,只需要更新一次,维护人员不需要对每个用户更新,节省了很大的运维成本,这对于所有客户都在做同样事情的系统来说是很有用的。
101 3
|
1月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
77 1
|
1月前
|
自动驾驶 5G 网络架构
|
1月前
|
C语言
深入解析sizeof和strlen的区别与联系
深入解析sizeof和strlen的区别与联系
|
2月前
|
定位技术 网络虚拟化 数据中心
VLAN与VXLAN技术解析:仅一字之差的深远区别
通过深入了解VLAN与VXLAN的技术细节和应用场景,网络工程师可以根据具体需求选择最合适的技术来优化网络架构。对于现代网络环境,尤其是大规模和多变的网络结构,理解并合理运用这些技术是提高网络效率和安全性的关键。
84 1
|
2月前
|
存储 缓存 NoSQL
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
71 0
|
2月前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。
|
3月前
|
数据挖掘 OLAP OLTP
深入解析:OLTP与OLAP的区别与联系
【8月更文挑战第31天】
1240 0
|
3月前
|
SQL 数据库
|
3月前
|
SQL Oracle 关系型数据库
深入解析 NOW() 与 CURRENT_DATE() 的区别
【8月更文挑战第31天】
171 0

推荐镜像

更多