概念:
声明或定义函数时为参数指定一个缺省值,在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参
就是先给形参一个默认值,若后续传参时你没有给它传参的话,它就使用这个默认值
分类:
- 全缺省参数
所有形参都给个缺省值就是全缺省
void Func(int a = 10, int b = 20, int c = 30)
{
cout<<"a = "<<a<<endl; // 不传参默认 10
cout<<"b = "<<b<<endl; // 不传参默认 20
cout<<"c = "<<c<<endl; // 不传参默认 30
}
- 半缺省参数
只有一部分形参给缺省值就是半缺省
void Func(int a, int b = 10, int c = 20)
{
cout<<"a = "<<a<<endl; //必须传参
cout<<"b = "<<b<<endl; // 不传参默认 10
cout<<"c = "<<c<<endl; // 不传参默认 20
}
注意:
- 半缺省参数必须从右往左依次来给出,不能间隔着给,所以也不存在跳着传参了
- 缺省参数不能在函数声明和定义中同时出现(怕你两个地方给的缺省值不同,所以给你禁止了)
- 缺省值必须是常量或者全局变量
- C语言不支持(编译器不支持)