关于调用函数赋初值的疑问?
void fun(int i,int j=10,int k=5)
void fun(i,j,k)
{
cout<<i<<j<<k<<endl;
}
int main()
{
fun();fun(3,5);
fun(1,3,5)
fun( ,3,5) //不给第一个赋值如何处理?
}
void fun(int i,int j=10,int k=5)
void fun(i,j,k)
{
cout<<i<<j<<k<<endl;
}
int main()
{
fun();fun(3,5);
fun(1,3,5)
fun( ,3,5) //不给第一个赋值如何处理?
}
2018-04-01
不给第一个赋值的话,i位置实参不能什么都不写,C++语法上是没有这种调用形式的,这种写法本身就是错误的;
函数调用时只能是从左往右给值的;“,”前面不能为空,所以不管咋地,第一个的值都必须得写,
还有就是,在进行函数调用的时候,对于没有给出默认值的变量,则必须在调用时给出具体的值;对于已经给出默认值的变量,在调用时实参的值可给可不给;如果想要不给第一个赋值的话,如果给出第一个的默认值(则后面j,k的默认值也必须已经给出了)就不用给第一个赋值了,调用时就是fun();如果不给处第一个变量i的默认值,那调用时就必须得要写的呀,不然调用不了。(总之就是不可能直接不给第一个i赋值,而给j、k进行赋值)
???
举报