C 中函式預設值的問題,c 函式宣告裡面帶有預設值的小問題

時間 2021-06-25 14:47:02

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 函式呼叫是你...