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 用父類指標或引用去訪問子類的虛函式時,...