【C++】缺省参数

一、缺省参数概念

缺省值通俗来说就是默认值

缺省参数的概念:是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实 参则采用该形参的缺省值,否则使用指定的实参。

void test(int a = 20)
{
	cout << a << endl;
}

int main()
{
	test();//20
	test(10);//10
}

在main函数里:

第一个test()并没有传参,所以使用参数的默认值,即a=20

在第二个test()中,传了一个10,所以此时的a值就是10

二、缺省参数的分类

1.全缺省参数

void test1(int a = 1, int b = 2, int c = 3)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

全缺省的意思是,所有的参数都拥有默认值。

2.半缺省参数

void test2(int a, int b = 2, int c = 3)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

如上面所示,a并没有缺省值,这时就需要至少对a传参。

半缺省参数传参注意事项:

(1). 半缺省参数必须从右往左依次来给出,不能间隔着给

(2). 缺省参数不能在函数声明和定义中同时出现(因为如果在.h和.cpp文件中同时出现,且提供的缺省值不同,编译器会报错)

(3). 缺省值必须是常量或者全局变量

(4). C语言不支持(编译器不支持)

tips:如上图所示,依次传参应是以下三种形式:

int main()
{
	test2(10);//a=10 b=2 c=3
	test2(100, 200);//a=100 b=200 c=3
	test2(1000, 2000, 3000);//a=1000 b=2000 c=3000
	return 0;
}

绝对不可以跳着传参,比如只传a、c

但是如果非要给b传参,可以将b调到最前面

void test3(int b, int a = 2, int c = 3)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值