C++进阶剖析(五 )之函数参数扩展

本文主要介绍了C++中函数参数默认值和占位符的相关知识。函数参数默认值可在函数声明中指定,调用时若不提供值则使用默认值,且默认值须从右向左提供。函数占位符只有参数类型声明,无参数名声明,一般函数体内无法使用,还探讨了其在C++中的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 函数参数默认值
1.1.1 函数默认值

  • C++中可以为函数参数提供默认值,当调用函数的时候,如果不提供为这个参数提供值,就会使用默认值。

1.1.2示例程序

int mul(int x =0);
int main()
{
	printf("%d\n",mul());   // 0
	printf("%d\n",mul(1));  // 1
	printf("%d\n",mul(2));  //4
	return 0;
}
int mul(int x )   //注意这没有int x =0 ,如果定义的时候提供默认值就会报错
{
	return x*x;
}

1.1.3 函数参数相关问题
函数参数的默认值必须在函数声明中指定,如果在函数实现中继续指定一个默认参数会怎样?
这样编译器就会报错

int mul(int a =0);
int main()
{
	mul();
	return 0;
}
int mul(int a =0)
{
	return  a*a;
}

结果:报错
在这里插入图片描述

1.2.4 函数参数的规则

  • 函数参数的默认值必须从右向左提供。
  • 函数调用时使用了默认值,则后续参数必须使用默认值。

1.2 函数占位符
1.2.1 占位符
C++中可以为函数提供占位符。

  • 占位参数就是只有参数类型声明,没有参数名声明。
  • 一般情况下,函数体内无法使用占位符。
int func(int x,int )
{
	return x;
}
int main()
{
	func(1,2); // ok
	return 0;
}

1.2.2 C++ 中为啥提供占位符?
C++ 中提供占位符的意义是啥?
考虑下面的代码在c++中和C语言中可以运行成功吗?

int func()
{
	return 0;
}
int main()
{
	func();
	func(1,2);

	return 0;
}

上面的程序在C++中是不能运行成功的,C++是一种强类型检查的语言。要想让程序在C++运行成功,需要用到两个知识点,占位符和参数默认值,修改后程序如下:

int func(int  =1,int =2)
{

	return 0;
}

int main()
{
	func();
	func(1,2);
	return 0;
}

参考一 : 狄泰软件课程

如有侵权:请联系邮箱 1986005934@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值