亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于調用函數賦初值的疑問?

void fun(int i,int j=10,int k=5)

void fun(i,j,k)

{

cout<<i<<j<<k<<endl;

}

int main()

{

fun();https://img1.sycdn.imooc.com//5ac0e1410001b9cb08070456.jpgfun(3,5);

fun(1,3,5)

fun( ? ,3,5) ? ? ?//不給第一個賦值如何處理?

}

正在回答

3 回答

不給第一個賦值的話,i位置實參不能什么都不寫,C++語法上是沒有這種調用形式的,這種寫法本身就是錯誤的;

函數調用時只能是從左往右給值的;“,”前面不能為空,所以不管咋地,第一個的值都必須得寫,

還有就是,在進行函數調用的時候,對于沒有給出默認值的變量,則必須在調用時給出具體的值;對于已經給出默認值的變量,在調用時實參的值可給可不給;如果想要不給第一個賦值的話,如果給出第一個的默認值(則后面j,k的默認值也必須已經給出了)就不用給第一個賦值了,調用時就是fun();如果不給處第一個變量i的默認值,那調用時就必須得要寫的呀,不然調用不了。(總之就是不可能直接不給第一個i賦值,而給j、k進行賦值)

???


1 回復 有任何疑惑可以回復我~
#1

斐珺孜 提問者

謝謝!很詳細~
2018-04-02 回復 有任何疑惑可以回復我~
#2

斐珺孜 提問者

C++沒有這種調用形式,其它語言有嗎?
2018-04-02 回復 有任何疑惑可以回復我~
#3

___TINGWEN 回復 斐珺孜 提問者

應該都沒有的吧.(其他語言不懂???)
2018-04-02 回復 有任何疑惑可以回復我~
#4

斐珺孜 提問者 回復 ___TINGWEN

留意一下,發現了告知我。我也會注意的~
2018-04-02 回復 有任何疑惑可以回復我~
查看1條回復

首先函數默認參數值的目的是對一些數據類型的變量進行“初始化”,目的是方便用戶使用的,調用時可寫可不寫,根據用戶需求來定。而對于不進行默認賦值的變量來說,是要求用戶一定要去實現的,是硬性條件。

0 回復 有任何疑惑可以回復我~

應該都沒有的吧.(其他語言不懂???

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之離港篇
  • 參與學習       122678    人
  • 解答問題       493    個

C++掃清通往面向對象的最后一道障礙,將所有知識點融會貫通

進入課程

關于調用函數賦初值的疑問?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號