C++之缺省参数


一.  何为缺省参数?

在C语言中是没有缺省参数这一概念的,缺省参数是在C++中引入的。

以下面的例子来说明什么是缺省参数:

#include<iostream>//输入输出流头文件
#include<stdlib.h>
using namespace std;
int add(int a = 3, int b = 4, int c = 6)
{
	return a + b + c;
}
int main()
{
	int c = 0;
	int b = 0;
	c=add();
	b = add(7, 8, 9);
	cout << c <<endl<< b<<endl;
	system("pause");

	return 0;

}


由输出可以看到,c=13,即没有传参的函数输出的值为13,传参的输出的值为24,没有传参的其实是用我们函数定义中给的参数值,如果函数传参了,则就用我们传的值。

在add函数中int add(int a = 3, int b = 4, int c = 6),其中括号内的参数,我们将它称为缺省参数,给缺省参数赋的值,那就是缺省值喽!

二. 下面说一下缺省参数在使用时的注意事项:

1. 首先我们在给缺省参数赋值时,必须从右向左赋,解释一下,就是你在给你的缺省参数赋值时,是要从右边依次开始赋值的,中间不可以跳跃,即不可以出现这种情况int add(int a = 3, int b ,int c = 6),记住是在依次的前提下,从右向左,这样就不管你左边的参数赋不赋值都是可以的。即就是这种情况:int add(int a , int b = 4, int =3 )。

2.缺省值必须是常量或全局变量。

3.缺省参数是不能同时在函数声明和定义中同时出现,只能二者则其一,一般我们是建议放在声明中的。因为函数的声明是告诉编译器,后面的这个函数的传参类型是这样,方便我们对函数的参数进行类型检测。

4.C 语言是不支持缺省参数的。

三. 最后,在补充点相关知识:

在我们的C语言中,函数没有指定参数列表时,默认是可以接受任意多个参数的,但在C++中,因为严格的参数类型检测,没有参数列表的函数,默认为void,是不接受任何参数的。

void Test()
{}
int main()
{
	Test(10);
	return 0;
}

如上面的函数在C语言中,是可以编译的过的,但在C++中是不可以编译过的,因为C++对函数的传参有严格的控制,若参数列表为空,则就不能传参,但C语言确是可以的。




  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值