🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 有参与无参 在函数中不需要函数参数的称之为无参函数,在函数中需要函数参数的称之为有参函数,有参和无参函数的一般形式如下: ![](http://img.mukewang.com/5491658200011ec105460137.jpg) 有参函数和无参函数的唯一区别在于:函数()中多了一个参数列表。 下面看一个例子对比有参和无参函数: ![](http://img.mukewang.com/549167ad00010d0105230377.jpg) 对应输出结果: ![](http://img.mukewang.com/549168340001ae9401650095.jpg) 在该例子中,我们不难发现有参函数更为灵活,输出的图形可以随着n的改变而随意变动,只要在main函数中传递一个参数就可以了;而在无参函数中输出的相对就比较固定,当需要改动的时候还需要到自定义的方法内改变循环变量的值。 #### 形参与实参 函数的参数分为形参和实参两种,形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数,实参是在调用时传递该函数的参数,就如小刚能实际行动起来。 函数的形参和实参具有以下特点: - **形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元**。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。 - **实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参**。因此应预先用赋值等办法使实参获得确定值。 - 在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。 例如:以下函数multiDouble(int x)实现把x乘以2再返回给函数调用处。 ![](http://img.mukewang.com/5497b5f30001ede604180228.jpg) #### 可变参数 #### **C函数库中有很多参数可变的函数,如print函数**,它的原型是这样的: ``` int print(const char *,……); ``` 其中“......”代表可变参数列表,这一部分的参数的个数和类型不是固定的,而是未知的。