C语言学习笔记-7.函数
一、函數的使用
1.每個函數在使用之前必須先定義
??? 例:void function();?????? //有分號
????????? int main() {…}
????????? void add() {…}?????? //無分號
2.文件包含處理:
?? #include <文件名>?????? 在庫函數頭文件所在目錄中查找(標準方式)
?? #include “文件名”????? 先在當前工作目錄中查找,若沒有則使用標準方式
3.函數的調用
??? 形參:定義一個函數時指定的參數
??? 實參:調用一個函數時指定的參數
???????????? 注:C語言規定只能由形參傳給實參
二、函數變量的作用范圍
1.局部變量的作用范圍是它所在的整個函數(包括main函數)
?? 形參可以視為局部變量
2.全局變量的作用范圍:從定義這個變量的位置開始,至程序結束
?? 如果在同一源文件中,全局變量與局部變量同名,則在局部變量的作用域內,全局變量將被屏蔽
3.函數的調用:
???? 控制流:語句執行的順序
???? 數據流:在函數調用發生及結束時,數據在函數之間流轉的過程,如參數的傳遞、返回
三、函數調用的實現過程
1.進程的內存分布
| 操作系統 | ? |
| 代碼 | ? |
| 數據段 | 編譯器用來存儲字符串常量的地方 |
| 堆 | 主要用作動態申請的內存空間 |
| 棧? S1 | 在調用一個函數時,系統在棧空間中自動分配一塊區 |
| ???? S2 | 域給這個函數,用來存放形參和局部變量等信息 |
| ???? …… | ? |
| 全局變量 | ? |
2.全局變量會被初始化為0
四、數組與函數參數
1.函數定義:double averagee(int a[], int n) {…}
?? 函數調用:average(score, n);
???? 注意:數據類型必須一致
????????????? 由于形參數組名實質上是指針,所以定義時可以不指定大小
????????????? 由于數組名不帶有長度信息,因此需增加一個參數,用來傳遞數組的長度
五、變量的存儲屬性
1.存儲類型:
| auto(自動型) | 默認局部變量,屬于默認類型 |
| register(寄存器型) | 存儲在CPU寄存器中,優點:效率高,缺點:個數少,只能為int型 |
| static(靜態型) | 性質:全局壽命,局部可見性,可繼承性 |
| extern(外部型) | 不是變量定義,只是擴展外部變量作用域(范圍:變量定義位置到源文件結束,及其他有extern說明的) |
轉載于:https://www.cnblogs.com/trj14/p/4282733.html
總結
以上是生活随笔為你收集整理的C语言学习笔记-7.函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Software Version
- 下一篇: Youtube最佳Red5 官方视频下载