源码先锋

源码先锋

形参和实参的区别?

admin 179 5

面试的时候经常有考官问请简述形参和实参的区别?这个其实很简单请看图一,是不是每天写代码都会看到和用到,没错形参和实参我们天天见,但是能将他们的区别说清楚那就需要下一番功夫了。

图1

形参(parameter):全称为"形式参数",由于它不是实际存在变量,所以又称虚拟变量。

实参(argument):全称为"实际参数",是在调用时传递给函数的参数。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。具体例子参考图二。

图2

图3

对比图2和图3,你会发现形参和实参一个重要的区别,形参只在函数调用过程中实例化,函数调用结束,形参生命周期结束,被销毁。形参不是实际存在变量,又称虚拟变量,只在函数调用过程中接受实参传递过来的值,是一份临时复制,用完销毁。

如果还是不明白其中区别,我打个不恰当的比喻,帮助大家理解一下。现有一家奶茶店,每一个进来消费的人都是可以称之为顾客,形参就是顾客。现在有两个人张三和李四,那么张三和李四就是实参,张三和李四进店消费,那么张三和李四就是顾客,张三和李四喝完奶茶走了,这俩顾客就不存在了。