默认形参值的作用:
函数声明时可以预先给出默认的形参值,如果函数调用是给出实参值,则使用实参值,否则采用预先给出的默认形参值。
int add(int x=5,int y=6)
{ return x+y;
}
void main(void)
{ add(10,20); //10+2
add(10); //10+6
add(); //5+6
}
默认形参值的说明次序:
必须从右到左的顺序声明,默认形参值的右边不能有非默认形参值的参数,因为函数调用的时候实参是从左到右传递的。
int add(int x,int y=5,int z=6); //正确
int add(int x=1,int y=5,int z); //错误
int add(int x=1,int y,int z=6); //错误
默认形参值与函数调用的位置
如果在函数调用之前仅有声明,调用之后才定义实现的,则在声明中就要给出默认形参值。
int add(int x=5,int y=6);//声明
void main(void)
{ add(); //调用在实现前
}
int add(int x,int y)//定义实现
{ return x+y; }
如果在函数调用之前有定义实现,则定义实现时直接给出
int add(int x=5,int y=6)
{ return x+y; }
void main(void)
{ add(); //调用在实现后
}
默认形参的作用域
int add(int x=1,int y=2);
void main(void)
{ int add(int x=3,int y=4);
add(); //使用局部默认形参值(实现3+4)
}
void fun(void)
{ ...
add(); //使用全局默认形参值(实现1+2)
}