C學習 函式(?)

2021-04-18 18:39:05 字數 713 閱讀 8225

question:return是乙個什麼機制,怎麼返回?函式的返回值又是怎麼確定,怎麼傳遞,存放在哪個位置?

在c中如果定義函式時沒有指定返回值型別,則預設是int型.

空函式:可以先定義,將來再擴充套件.

1>關於形參與實參

a>定義時形參沒有儲存單元,只有在呼叫時,才分配記憶體單元,呼叫結束後,形參所佔記憶體單元釋放.

b>實參可以是常量,變數或是表示式,但有乙個確定的值.

c>在定義的函式中,必須指定形參的型別.

d>形參與實參的型別應相同或是賦值相容.

e>c中,實參對形參的資料傳遞是"值傳遞",即單向傳遞,只能實參給形參而不能形參給實參.

2>函式返回值

a>函式的返回值通過return語句獲得的.函式有多個return時,執行到哪乙個return就截止,後面的**不執行.多個return代表有多個出口.

b>有返回值就要指定函式的返回值型別.

c>函式型別決定返回值型別.即:如果函式返回值與return返回值型別不一致,以函式型別為準.

d>如果沒有return,函式並不是不帶回值,而只是不帶回乙個有用的值,是乙個不確定的隨機值.

e>明確表示"不帶回值",可以用"void"定義為"無型別".禁止使用這個函式的返回值.

編譯器不分配返回值儲存空間.

3>函式的呼叫

實參與形參的個數相等,型別一致.實參的求值順序不確定,有的是自左向右,有的是自右向左.

C 學習 函式

函式不能返回指向自動變數的指標,因為函式呼叫後自動變數就不存在了。錯例如下 int emitptr 函式可以返回動態申請的變數 靜態或全域性變數的指標。變數的儲存類 1.auto 自動變數是在動態儲存區分配儲存單元,當函式返回時自動類變數中存放的資料也就消失了。2.static 靜態儲存類。在程式執...

C 學習 函式

作用 將一段經常使用的 封裝起來,減少重複 乙個較大的程式,一般分為若干個程式塊,每個 模組實現特定的功能。1,返回值型別 2,函式名 3,引數列表 4,函式體語句 5,return 表示式 語法 返回值型別 函式名 形參列表 intadd int num1,int num2 功能 使用定義好的函式...

c 學習 虛函式

虛函式學習 1.虛函式的關鍵字是virtual.2.如果在父類中成員函式前加上virtual,則如果子類中定義了重名函式,則兩者會產生聯絡.3.virtual函式的子子孫孫都是virtual的,管你在子類中說不說,但好習慣還是加上.4.當向上造型 upcast 用父類指標或引用去訪問子類的虛函式時,...