函数形参的理解

函数的定义

一个典型函数定义包括四个部分:返回类型,函数的名字,形参列表和函数体。格式如下

int max(int a,int b) 

{函数体}

函数的作用

在我看来,函数的一般作用是对一定的输入产生一定的输出,当然可以没有输入;至于产生输出的机制,一般定义函数的时候需要考虑,使用函数的时候不需要考虑。

函数的输入

形参列表

函数的输入以形参的形式进行输入,放入函数名后面的括号,形参列表的格式注意取下

1)函数没有参数输入,括号不能省略;

2)形参列表中,函数的括号只是格式上的要求,没有特殊的意义;相对于函数的调用,此时括号是调用运算符;/*说明符号形式上的一致,在不同的地方,其作用是不同*/

3)形参列表的每个形参的类型,都不能省略,即每个形参都含有一个声明符的声明,这一点很重要,这会导致函数的输出;笔者主要有以下体会:

 *一般情况下,也就是值传递,形参和实参是两个独立的对象,即使类型和对象的名称是一样的,但是其作用域是不一样的,此时对于函数的输入,函数的输入发生改变。/*形参和实参的过程:形参=实参,很明显,此时实参使用的是右值功能,这是一个拷贝行为*/

*有时候形参的类型是指针,此时会把一个对象的地址传递给形参,这是一种改变输入的方法,但是指针类型有时候觉得并不还用(可能觉得太麻烦)/*这是间接访问变量的一种方式*/

*还有一种是引用传递,这是一种比较好的方式,意思就是将实参的起一个别名,对别名的操作相当于对实参的操作,也是一种该改变输入的方/*形参和实参的过程:形参类型  &形参名=实参类型 实参名 ,这也是间接访问变量的方式*/

优缺点

*间接的访问实参,(不是通过拷贝行为),可以增加函数的输入输出接口,因为函数的返回值只有一个。/*增加一个引用形参用来增加函数的放回值,作用是一样的*/

1)指针参数

*指针参数可以使用迭代方法扩大输入,形参不能传递数组,数组名实际就是一个指针常量,为数组首元素的地址,通过这个指针常量可以访问除数组首元素之外的元素,即扩大输出;(总不能把所有数组的元素作为形参写进去)

2)引用传递

*引用传递只是起了一个别名,类似于typedef的作用(区别作用的东西不一样),没有开辟空间重新建立变量,而且别名可以根据实际情况起名字,有利于函数体的可读性,在满足的条件下,这是一个很好的书写行为,即使你不想该改变输入,加一个const就好了,比如const int &p,p一个int对象的别名,const限制别名p改变int对象的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值