一、函数参数的默认值
1. C++中可以在函数声明时为参数提供一个默认值
2. 当函数调用时没有提供任何参数的值,则使用默认值
int mul(int x = 0)
int main()
{
printf("%d\n",mul()); //mul(0)
}
int mul(int x)
{
return x*x;
}
3.参数的默认值必须在函数声明中指定
#include<stdio.h>
int mul(int x = 0 ); //函数参数的默认值必须在函数声明中提供
int main()
{
printf("%d\n",mul());
printf("%d\n",mul(-1));
printf("%d\n",mul(2));
printf("%d\n",mul(5));
return 0;
}
//int mul(int x = 2) //不能再定义中给出
int mul(int x)
{
return x*x;
}
二、函数参数的默认值的规则
1. 参数的默认值必须从右到左提供 (设计函数时需要考虑的)
2. 函数调用时使用了默认值,则后续参数必须使用默认
int add(int x ,int y =1 , int z=2)
{
return x+y+z;
}
/*调用时从左到右匹配*/
add(0); //x=0,y=1,z=2
add(2,3); //x=2,y=3,z=2
add(3,2,1); //x=3,y=2,z=1
三、函数占位参数
1. C++中可以为函数提供占位参数
2. 占位参数只有参数类型声明,而没有参数名声明
3. 一般情况下,在函数体内部无法使用占位参数
int func(int x ,int = 0)
{
return x;
}
//.....
funx(1,2); //ok
四、函数占位符的意义、
1. 占位符与默认参数结合起来使用
2. 兼容C语言程序中可能出现的不规范写法

在C语言中这两种写法不等价但是在C++中是等价的