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