函式不能返回指向自動變數的指標,因為函式呼叫後自動變數就不存在了。
錯例如下:
int *emitptr()
函式可以返回動態申請的變數、靜態或全域性變數的指標。
變數的儲存類
1.auto
自動變數是在動態儲存區分配儲存單元,當函式返回時自動類變數中存放的資料也就消失了。
2.static
靜態儲存類。在程式執行過程中此物件或變數總是存在。(函式呼叫後依然存在)
void test()
void main()
//---結果---- 0
1 23
extern
外部儲存類,乙個檔案引用另乙個檔案中定義的外部變數
預設引數
int test(int a,int b=1);
從右開始
函式過載:只要引數個數或者引數型別不同即可(
不能根據返回型別)
inline函式(內聯函式)
類似於巨集定義又與之不同。inline函式以普通的函式形式對引數進行處理。
不需要額外的系統開銷。
目的是為了消除系統開銷,以提高執行速度,空間換時間,因此只適用一些小的函式。
不能有迴圈語句和swith語句。
不是所有inline關鍵字函式都可以成為內聯函式,系統根據函式大小設定。
外部函式和靜態函式
函式一般都是外部的,本檔案之外其他檔案也可呼叫,要想只能本檔案使用,定義靜態函式,static
C學習 函式(?)
question return是乙個什麼機制,怎麼返回?函式的返回值又是怎麼確定,怎麼傳遞,存放在哪個位置?在c中如果定義函式時沒有指定返回值型別,則預設是int型 空函式 可以先定義,將來再擴充套件 關於形參與實參 a 定義時形參沒有儲存單元,只有在呼叫時,才分配記憶體單元,呼叫結束後,形參所佔記...
C 學習 函式
作用 將一段經常使用的 封裝起來,減少重複 乙個較大的程式,一般分為若干個程式塊,每個 模組實現特定的功能。1,返回值型別 2,函式名 3,引數列表 4,函式體語句 5,return 表示式 語法 返回值型別 函式名 形參列表 intadd int num1,int num2 功能 使用定義好的函式...
c 學習 虛函式
虛函式學習 1.虛函式的關鍵字是virtual.2.如果在父類中成員函式前加上virtual,則如果子類中定義了重名函式,則兩者會產生聯絡.3.virtual函式的子子孫孫都是virtual的,管你在子類中說不說,但好習慣還是加上.4.當向上造型 upcast 用父類指標或引用去訪問子類的虛函式時,...