实参VS形参
1.实参 argument
实际参数,在函数调用的时候,传递给函数的参数。实参-按值调用
实际参数可以是变量、常量、表达式以及函数
实际参数必须得有确定的值(赋值、输入等),在函数调用时,把这些值传递给形式参数
2.形参 parameter
形式参数,是在函数定义中的参数。是定义函数名和函数体使用的参数
不是实际存在的参数,是虚拟变量
形式参数接收实际参数的值,实参于形参的个数以及类型要保证相同
3.实参和形参的重要性质
- 形参在函数定义中,在整个函数体可以使用,离开函数后不能使用
- 实参在主调函数中,进入被调查者函数后,实参变量也不能使用
- 实参与形参的结合,本质上就是数据的传递,传递时单向的,只能是 实参(rightarrow)形参
- 形参只有在被调用时,再进行内存的分配,调用结束后立即释放内存。形参和实参的内存不在一个区域
最重要的性质
当形参和实参不是指针类型
-
在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置
-
形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变
如果函数的参数是指针类型变量
- 在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。
- 所以在函数体内部可以改变实参的值
结论
良好的编程习惯对代码的时间效率影响很大
引用(指针)来传递复杂类型参数
如果采用值传递的方式,形参到实参会产生一次复制操作,这样的复制是多余的,影响代码的效率