缺省参数又叫默认参数,当调用函数的时候,没有赋予参数,就使用函数的默认参数。
//缺省参数(也叫默认参数)
void func(int a = 0)
{
cout << a << endl;
}
int main()
{
func(1);//如果传了参数,则a = 1;
func( );//如果没有传参数,则a默认等于0;
return 0;
}
当有多个参数的时候, 都可以给缺省值,并且有多种调用方式
全缺省:
//全缺省
void func(int a = 10, int b = 20, int c = 30)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl << endl;
}
int main()
{
func();//第一种啥都不传
func(1);//第二种传a=1
func(1, 2);//传两个值。分别给a和b,因为从左往右传值
func(1, 2, 3);//传三个值。分别给a,b和c,不能说只传中间那一个或是最后那一个
return 0;
}
半缺省:
//半缺省(部分缺省) -- 缺省部分参数 -- 必须从右往左缺省,必须连续缺省
//void func(int a, int b = 20, int c = 30)
void func(int a, int b, int c = 30)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl << endl;
}
int main()
{
func(1, 2);//第一种传前面两个
func(1, 2, 3);//第二种传三个
return 0;
}
缺省参数可以应用于栈的初始化,比如
注意:缺省参数不能在函数声明和定义中同时使用,要么在声明中,要么在定义,推荐写在声明。