实参&形参

实参VS形参

1.实参 argument

实际参数,在函数调用的时候,传递给函数的参数。实参-按值调用

实际参数可以是变量、常量、表达式以及函数

实际参数必须得有确定的值(赋值、输入等),在函数调用时,把这些值传递给形式参数

2.形参 parameter

形式参数,是在函数定义中的参数。是定义函数名和函数体使用的参数

不是实际存在的参数,是虚拟变量

形式参数接收实际参数的值,实参于形参的个数以及类型要保证相同

3.实参和形参的重要性质

  • 形参在函数定义中,在整个函数体可以使用,离开函数后不能使用
  • 实参在主调函数中,进入被调查者函数后,实参变量也不能使用
  • 实参与形参的结合,本质上就是数据的传递,传递时单向的,只能是 实参\(rightarrow\)形参
  • 形参只有在被调用时,再进行内存的分配,调用结束后立即释放内存。形参和实参的内存不在一个区域

最重要的性质

当形参和实参不是指针类型

  • 在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置

  • 形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变

如果函数的参数是指针类型变量

  • 在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。
  • 所以在函数体内部可以改变实参的值

结论

良好的编程习惯对代码的时间效率影响很大

引用(指针)来传递复杂类型参数

如果采用值传递的方式,形参到实参会产生一次复制操作,这样的复制是多余的,影响代码的效率

全部评论

相关推荐

10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务