1.形式参数
定义函数时的变量名称为形式参数。形式参数的特点:
(1).当被调用的函数有参数时,主调函数和被调用函数之间通过形式参数实现数据传递。
2.实际参数
在主调函数中调用一个函数时,函数名后面的参数或者表达式称为实际参数。实际参数主要有以下特点:
(1)函数调用时,实参的类型应该和形参的类型一一对应或者兼容
(2)实参应该有确定的值,可为常量,变量或表达式。
(3)函数调用时系统才为形参分配内存,与实参占用不同的内存,即使形参和实参同名也不会混淆。函数调用结束时,形参所占用的内存即被释放。
参数传递方式
函数调用时,实参和形参进行了数据的传递。根据实参向形参传递数据的方式分为3种方式:按值传递,按地址传递和按引用传递。
1.按值传递 也称作传值(函数的复印 也就是形参是实参的复印,形参的改变不会改变实参。)
形式:形参为普通变量,实参为表达式或变量,实参向形参赋值。
特点:参数传递后,实参和形参不再有任何联系。
注意:实参是表达式,故形参不能给实参赋值。函数调用时,系统为形参分配相应的存储单元,用于接收实参传递的数据。函数调用期间,形参和实参各自拥有独立的存储单元。函数调用结束,系统回收分配给形参的存储单元。
传值调用的优点:函数调用对其外界的变量无影响,最多只能用return返回一个值,函数独立性强。
2.按引用传递 又称传引用(形参改变 实参也变)
引用即变量的别名,对别名的访问就是对别名所关联变量的访问。“&”称为引用符。
例:int i; int &ai=i; ai=15;i的值也为15;i=100 ai的值也为100
使用引用应该注意:
(1)定义引用时,应同时对它初始化,使他和一个类型相同的已有变量关联。
(2)一个引用与某变量关联,就不能再与其他变量关联。
(3)引用主要用作函数的形参和返回值。
按引用方式调用形式:形参为引用型变量,实参是变量为引用型形参初始化。
特点:参数传递后,形参是实参的别名,修改了形参,实参也随着发生变化。函数调用时,系统不再为形参分配存储单元,形参就是在被调用函数中实参的别名,也就是说他们是同一个存储单元。