int Sum(int a,int b=10,int c=10)//赋予默认值b=10,c=10
{
return a+b+c;
}
int main()
{
Sum(10);
return 0;
}
√
默认值的赋予规则:自右向左
实参的匹配的规则:自左向右
当有默认值,有实参时,取实参
当有默认值,没实参时,取默认值
当没默认值,没实参时,取实参
当既没默认值,也没实参时,程序报错
int Sum(int a,int b,int c=10);
int Sum(int a,int b,int c=10);//重复赋予默认值,编译报错
int Sum(int a,int b,int c);
int Sum(int a,int b,int c)
{
return a+b+c;
}
×
函数默认值不能重复赋予
/*
声明点在前 无默认值 调用点在中间 定义点在最后 有默认值
*/
int Sum(int a,int b,int c);//声明点
int main()
{
Sum(10,20);//调用点
return 0;
}
int Sum(int a,int b,int c=10)//定义点
{
return a+b+c;
}
×
编译时自上向下,调用点出缺少实参,编译出错。