#include<iostream>
using namespace std;
//默认参数
void fun(int x=1)
{
cout<<"x="<<x<<endl;
}
void fun1(int x,int y=1,int z=2)
{
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
cout<<"z="<<z<<endl;
}
//占位参数
int fun2(int a, int b,int)
{
return a+b;
}
//默认参数与占位参数结合使用
int fun3(int a, int b,int =0)
{
return a+b;
}
int main()
{
/*
默认参数:
在函数定义时形参直接给定初始值,这样在函数调用时若无实参则用默认值
当用多个默认参数时,默认参数全都放在最右边
占位参数:
只有类型声明而没有参数名
一般情况下,在函数体内无法使用占位参数(没有参数名)
*/
fun(3);//默认参数
fun();
fun1(10);
fun1(10,20);
fun1(10,20,30);
cout<<"fun2(1,2,3)="<<fun2(1,2,3)<<endl;//尽管第三个参数为占位参数,但调用时实参还是不能少
cout<<"fun3(1,2,3)="<<fun3(1,2,3)<<endl;//当占位参数为默认参数时,调用时可以不写
cout<<"fun3(1,2)="<<fun3(1,2)<<endl;//当占位参数为默认参数时,调用时可以不写
system("pause");
return 0;
}