如何理解庫函數
庫是已經寫好的、成熟的、可復用的代碼。每個程序都需要依賴很多底層庫,不可能每個人的代碼從零開始編寫代碼,因此庫的存在具有非常重要的意義。在我們的開發的應用中經常有一些公共代碼是需要反復使用的,就把這些代碼編譯為庫文件。庫可以簡單看成一組目標文件的集合,將這些目標文件經過壓縮打包之后形成的一個文件。像在Windows這樣的平臺上,最常用的c語言庫是由集成按開發環境所附帶的運行庫,這些庫一般由編譯廠商提供
如何理解指針作為函數參數的輸入和輸出特性
輸入特性:主調函數分配空間 背調函數使用該空間
輸出特性:被調用分配空間 主調函數使用該空間
函數名的意義
在c語言中 函數名代表的是函數的入口地址
函數的形參和實參的區別
int data1=0; int data2=0; int my_add(int x, int y) { return x+y; } int main() { my_add(data1,data2); } |
形參:在函數定義時候定義形參(例如:x,y),一般由形參類型和形參名組成。在定義函數是不會為形參開辟空間,只有在函數調用時系統才會為形參開辟空間
實參:在函數調用時傳遞給函數的實際參數(例如:data1,data2),他在函數調用前就存在的
函數的作用
將為同一功能服務的代碼,封裝在一起,通過函數名直接調用,提高代碼的重用
函數的定義與函數的聲明的區別
函數定義:是指對函數功能的確立,包括指定函數名、函數類型、形參及其類型、函數體等,它是一個完整的、獨立的函數單位。
函數的聲明:是把函數的名字、函數類型以及形參的個數、類型和順序(注意,不包括函數體)通知編譯系統,以便在對包含函數調用的語句進行編譯時,據此對其進行對照檢查(例如函數名是否正確,實參與形參的類型和個數是否一致)
從定義的角度為函數分類
庫函數(c語言庫)、自定義函數、系統調用(內核提供給用戶的函數接口)
從有無參數的角度對函數分類
無參的函數:不能將函數外部的數據 傳遞 給函數內部
有參的函數:通過參數 將函數外部的數據 傳遞到函數內部
(參數:函數外部數據 到 函數內部的 橋梁)
普通變量作為函數的參數特點
函數內部可以借助函數的參數使用外部變量的值,但是函數內部不能通過形參間接修改外部變量的值(單向傳遞中的值傳遞)
一維數組作為函數的參數的特點
數組作為函數的參數,會被優化成數組元素指針變量,在調用函數的時候實參只需要傳遞數組的首元素地址就可以操作數組的所有元素
在32位平臺Void func(int arr[5]){}則sizeof(arr)的結果
4字節
二維數組作為函數的特點
二維數組作為函數的參數會被優化成數組指針,函數內部可以借助該數組指針操作二維數組的所有元素。在操作數組元素上該數組指針等價于函數外部的二維數組名