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