1樓:
" 函式中有多個預設引數,則形參應從最右邊依次向左設定。"
-- 意思是,當第i 個引數有預設值時,
第i +1,i+2,i+3 。。。直到最後一個引數都必須 給預設值。否則語法錯。
void point(int x,int y=0,int z=0); -- 對
void point(int =0,int,int =0); -- 錯
void point(int =0,int =0,int); -- 錯
void point(int ,int,int =0); -- 對
"當呼叫函式時,只能向左匹配引數。" --
如果函式有4個引數,你呼叫時填了兩個,那麼第3和第4個引數用預設值 -- (對的)
如果函式有4個引數,你呼叫時填了3個,那麼第4個引數用預設值。-- (對的)
你不能說,我填2個引數,算第1第3 ,第2和第4個引數用預設值。-- (就錯了)。
2樓:sweet丶奈何
void point(int x=10,y=20); //這句是 宣告
void point(int x=10,y=20) {} //帶函式體沒有分號是定義
所以第一節裡只有宣告沒有定義,函式在呼叫前需要宣告。
但如果在main函式前定義的函式是可以省略宣告直接呼叫的。
簡而言之,就是使用預設引數時是把預設引數寫道宣告裡了,省略宣告時寫到定義裡(其實也就是宣告和定義合二為一了)。
3樓:巫彬計採楓
必須按照引數順序對位入座。你的呼叫相當於把"y"(char)賦給了int。這樣可定是不行的。
4樓:盈彗張繡
函式傳值呼叫時,實際引數作為右表示式想形式引數提供初始值。c++的允許指定引數的預設值,凼函式呼叫中升略預設引數時,預設值自動傳遞被呼叫函式
c++函式宣告裡面帶有預設值的小問題
5樓:匿名使用者
既然定義了預設bai值就是說:你傳實du參時不給zhi值的話就用宣告給出的dao
預設值,版
所以給出了預設值的參權數在傳參時是“可有可無”的。
而沒有定義預設值的函式當然要自己給出全部引數的值,否則的話傳什麼值呢。
定義預設值一般是在有普遍適用的情況下。比如一個給文字設定顏色的函式,大多數情況下文字都是黑色,那麼你就可以給這個函式設個黑色的預設值。具體情況具體分析,按程式設計師的需要來。
c++書上有一個帶預設值的函式的問題
6樓:
指的是函式的宣告和定義,不是指變數
7樓:檀衛傑
這個是帶有預設值的形參列表,表示如果y,z不被賦值則使用預設值...
point(x);
point(x,y);
point(x,y,z);
這三種呼叫方式就是為了驗證上面的結論的,不知道對不對,嘿嘿
8樓:隨風而逝_微塵
int y=0,int z=0是預設值啊
9樓:匿名使用者
是這樣的,void point(int x,int y=0,int z=0),表示y,z如果有傳值進來,那麼各自對應你所傳進來的值,否則如果沒有傳值進來的話,都預設為0,而x一定要傳值進來!!
C 中的建構函式問題,c 建構函式的問題
建構函式一般用來對類中的資料成員進行初始化工作,但並不是要對全部資料初始化,你只需要選擇自己需要的資料進行賦值即可。其實這一點從預設的建構函式也能看出來 當你沒有顯示的寫乙個建構函式的時候,編譯器會為你提供乙個預設的建構函式,它沒有引數,只有乙個空語句,也就是說它沒有對任何資料成員進行初始化。由於構...
函式的宣告和全域性變數的問題,c語言 函式呼叫全域性變數需要宣告變數嗎
函式是函式,變數時變數,沒有講函式可以成為全域性變數的說法 把函式宣告放在第二行,則在主函式裡面任意地點都能呼叫,而在主函式裡面宣告,那如果要呼叫這個函式,就必須在宣告之後,否則無法識別。做個假設 void main void test void fun 這段 你試試可以編譯通過嗎?不可以把?呵呵,...
請問C語言中函式定義,函式宣告和函式呼叫的區別
函式宣告指函式原型宣告,只有函式名,函式型別,引數個數和型別,無函式體。一般放在主函式前。逗號結尾。函式定義,除上述外,去掉結尾逗號,加函式體。可放在main函式後面,也可放在main函式前面。放在main函式前面則不要寫函式原型宣告。 雲澹楓卿 函式宣告格式如 int max int 函式呼叫是你...