關于調用函數賦初值的疑問?
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
舉報
2018-04-02
不給第一個賦值的話,i位置實參不能什么都不寫,C++語法上是沒有這種調用形式的,這種寫法本身就是錯誤的;
函數調用時只能是從左往右給值的;“,”前面不能為空,所以不管咋地,第一個的值都必須得寫,
還有就是,在進行函數調用的時候,對于沒有給出默認值的變量,則必須在調用時給出具體的值;對于已經給出默認值的變量,在調用時實參的值可給可不給;如果想要不給第一個賦值的話,如果給出第一個的默認值(則后面j,k的默認值也必須已經給出了)就不用給第一個賦值了,調用時就是fun();如果不給處第一個變量i的默認值,那調用時就必須得要寫的呀,不然調用不了。(總之就是不可能直接不給第一個i賦值,而給j、k進行賦值)
???
2019-04-02
首先函數默認參數值的目的是對一些數據類型的變量進行“初始化”,目的是方便用戶使用的,調用時可寫可不寫,根據用戶需求來定。而對于不進行默認賦值的變量來說,是要求用戶一定要去實現的,是硬性條件。
2018-04-02
應該都沒有的吧.(其他語言不懂???)