函数参数

1.函数参数默认

  定义:C++中在函数声明是可以为函数参数指定一个默认值。

     当调用函数是没有提供参数值时,使用声明的默认值。

int fun(int val = 0) ;  //声明,并指定默认值

int main(void)
{  fun(); }    // 没有提供参数,使用默认值

int fun(int val)
{ val++; }

注意:

   1.声明的默认参数与调用时传递的参数冲突时,以传参为准。

           2.不可以在定义时给出默认参数。

           3.声明函数默认参数时必须从右向左依次提供,不可调过提供。

        void func( int a , int b = 0 , int c = 1 );

        void func( int a , int b = 0 , int c );        // error 

   4.调用函数时一旦使用默认值,从左到右的后面参数必须使用默认值。

        void func( int a , int b = 0 , int c = 1 );

        func(0);         //  a=0, b=0, c=1

        func(1,2);      //  a=1, b=2, c=1

        func(1,2,3);   //  a=1, b=2, c=3

        void func( int a , int b , int c = 1);

        func(0);        // error

2. 函数占位参数

  定义:只有参数类型声明,没有参数名。

       作用:1. 函数内部无法使用占位参数。

     2. 匹配调用传参个数。

                  3. 占位参数可以与默认参数结合。

     eg:int func(int a , int )

                         call: func(1,2)           // ok

     eg:void func()          // C语言不等价

       call: void func(void)   //  C++ 等价

原文地址:https://www.cnblogs.com/zsy12138/p/10679872.html