Java 基础系列(十五) --- 形参和实参的关系以及值传递问题

形参和实参的关系以及值传递问题

要认真体会一下形参和实参的关系,这对初学的小白来说至关重要哦!
注意:示例中主要用java语言来写,但不影响学C方向的同学来,换汤不换药!

一:定义

形参:顾名思义,形参就是形式的参数,是在定义函数名和函数体的时候使用的参数,目的就是用来接收调用该函数时的参数;通俗来讲,形参就是出现在你所写的函数的定义中,在你所写的整个函数体内都可以使用,但是离开这个函数后则不能继续使用。
实参:就是实际的参数,出现在所写的主函数中(例如你的main函数中),在调用时传递该函数的参数。
看下面的图自己体会一下下!
在这里插入图片描述

二:值传递(易错点)

那么为什么区分开形参和实参至关重要呢?下面我们来看一段代码。

public class TestDemo {
    public static void swap(int x,int y) {
        int tmp = x;
        x = y;
        y = tmp;
    }
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("a = "+ a+" b = "+b);
        swap(a,b);
        System.out.println("a = "+ a+" b = "+b);
    }
}

大家猜一下上面的代码运行结果会是多少?很多初学者可能觉得这就是个简单地交换函数,结果应该是a=20,b=10;那么实际结果却是如下:

在这里插入图片描述 在这里插入图片描述

三:原因分析

刚才的代码并没有完成数据的交换,因为对于基本的类型来说,形参相当于实参的拷贝,对x和y的修改并不影响a和b,例如我在swap方法里面将x和y的值更改一下,a和b的结果依旧是a = 10,b = 20;
就好比我买了一只雪糕,我舍友看着好吃他也买了一只同样的雪糕,那么他的雪糕和我的雪糕肯定不是一支雪糕呀
在这里插入图片描述
解决方法
可以利用数组来解决这一问题
在这里插入图片描述

四:总结

在这里插入图片描述
在大学的期末考试及研究生入学考试中经常会出现值传递的问题,铭记实参传递给形参的是值,对形参的改变不会影响到实参,c语言中的引用也可以解决值传递的问题,需要多加注意。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值