透徹理解函式

2021-09-19 04:14:45 字數 623 閱讀 8450

建議先看一下前一篇《透徹理解指標》

可以將函式看成一種型別,和其他變數型別一樣,包括函式的宣告和函式的定義,只要宣告或定義了乙個函式,就向系統提供了乙個符號。

一,函式的定義(宣告就不說了,只是提供乙個符號)

int func(void)

定義了函式func,func本身就代表了這個函式的位址,與&func含義相同,這點和陣列一致,陣列名也表示它的首位址,就可以認為定義了一種型別(這種型別int (*func)())的變數,這個變數是不能改變的。

二,函式的引數和返回值

int func1(int a, int* b, int c)

{}

int func2(void)

其實不用考慮按值傳遞還是按引用傳遞,函式的引數就是在其棧上建立區域性變數而已,func1和func2是一樣的,只是func1中abc的值是函式呼叫者傳入,func2中abc的值是全域性變數傳入。

函式的返回值就是將return後面的值拷貝乙份給函式接收者而已。

三,作用域

c語言函式的作用域預設是整個工程的,可以在前面加static修飾,使其作用域在當前檔案。

函式式程式設計的透徹理解

函式是 第一等公民 所謂 第一等公民 first class 指的是函式與其他資料型別一樣,處於平等地位,可以賦值給其他變數,也可以作為引數,傳入另乙個函式,或者作為別的函式的返回值。簡單說,函式式程式設計 是一種 程式設計正規化 programming paradigm 也就是如何編寫程式的方 它...

電路交換 透徹理解

中文名稱 電路交換 英文名稱 circuit switching 網中就是採用電路交換方式。人們可以打一次 來體驗這種交換方式。打 時,首先是摘下話機撥號。撥號完畢,交換機就知道了要和誰通話,並為雙方建立連線,等一方掛機後,交換機就把雙方的線路斷開,為雙方各自開始一次新的通話做好準備。因此,可以體會...

透徹理解聯合索引 a,b,c

目錄 用到索引的有a,ab,abc,ac 因為優化器會自動調整and前後的順序,所以ba,cba,bca,ca都會用到索引,其他的都不會用到該索引。ac這一組僅僅是a用到索引。組合索引 有 最左字首 原則,遇到範圍查詢 聯合索引是一顆b 樹 a,b 情況描述 在mysql的user表中,對a,b,c...