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