計(jì)算機(jī)二級(jí)C語(yǔ)言函數(shù)考點(diǎn)歸納
第7章 函數(shù)考點(diǎn)歸納
7.1 庫(kù)函數(shù)的正確調(diào)用
1.C語(yǔ)言提供了豐富的庫(kù)函數(shù),包括常用數(shù)學(xué)函數(shù)、對(duì)字符和字符串處理函數(shù)、輸入輸出處理函數(shù)等。在調(diào)用庫(kù)函數(shù)時(shí)要注意以下幾點(diǎn):
(1)調(diào)用C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)必須在源程序中用include命令,include命令的格式是:
#include″頭文件名″
include命令必須以#號(hào)開(kāi)頭,系統(tǒng)提供的頭文件名都以.h作為后綴,頭文件名用一對(duì)雙引號(hào)″″或一對(duì)尖括號(hào)〈〉括起來(lái)。
(2)標(biāo)準(zhǔn)庫(kù)函數(shù)的調(diào)用形式:
函數(shù)名(參數(shù)表)
2.在C語(yǔ)言中庫(kù)函數(shù)的調(diào)用可以以兩種形式出現(xiàn):出現(xiàn)在表達(dá)式中;作為獨(dú)立的語(yǔ)句完成某種操作。
7.2 函數(shù)的定義方法
1.C語(yǔ)言函數(shù)的一般形式為:
函數(shù)返回值的類型名 函數(shù)名(類型名 形參1,類型名 形參2,…)
{
說(shuō)明部分
語(yǔ)句部分
}
定義的第一行是函數(shù)的首部,{}中的是函數(shù)體。
2.在老的C語(yǔ)言版本中,函數(shù)的首部用以下形式:
函數(shù)返回值的類型名 函數(shù)名(形參1,形參2…)
形參類型說(shuō)明;
新的ANSI標(biāo)準(zhǔn)C兼容這種形式的函數(shù)首部說(shuō)明。
3.函數(shù)名和形參名是由用戶命名的標(biāo)識(shí)符。在同一程序中,函數(shù)名必須唯一。形式參數(shù)名只要在同一函數(shù)中唯一即可,可以與函數(shù)中的變量同名。
4.C語(yǔ)言規(guī)定不能在一個(gè)函數(shù)內(nèi)部再定義函數(shù)。
5.若在函數(shù)的首部省略了函數(shù)返回值的類型名,把函數(shù)的首部寫(xiě)成:
函數(shù)名(類型名 形參1,類型名 形參2,…)
則C默認(rèn)函數(shù)返回值的類型為int類型。
6.當(dāng)沒(méi)有形參時(shí),函數(shù)名后面的一對(duì)圓括號(hào)不能省略。
7.3 函數(shù)的類型和返回值
1.函數(shù)的類型由函數(shù)定義中的函數(shù)返回值的類型名確定,函數(shù)的類型可以是任何簡(jiǎn)單類型,如整型、字符型、指針型、雙精度型等,它指出了函數(shù)返回值的具體類型。當(dāng)函數(shù)返回的是整型值時(shí),可以省略函數(shù)類型名。當(dāng)函數(shù)只完成特定的操作而沒(méi)有或不需要返回值時(shí),可用類型名void(空類型)。
2.函數(shù)返回值就是return語(yǔ)句中表達(dá)式的值。當(dāng)程序執(zhí)行到return語(yǔ)句時(shí),程序的流程就返回到調(diào)用該函數(shù)的地方(通常稱為退出調(diào)用函數(shù)),并帶回函數(shù)值。
7.4 形式參數(shù)與實(shí)際參數(shù),參數(shù)值的傳遞
1.在函數(shù)定義中,出現(xiàn)的參數(shù)名稱為形參(形式參數(shù)),在調(diào)用函數(shù)時(shí),使用的參數(shù)值稱為實(shí)參(實(shí)際參數(shù))。
2.調(diào)用函數(shù)和被調(diào)用函數(shù)之間的參數(shù)值的傳遞是″按值″進(jìn)行的,即數(shù)據(jù)只能從實(shí)參單向傳遞給形參。也就是說(shuō),當(dāng)簡(jiǎn)單變量作為實(shí)參時(shí),用戶不能在函數(shù)中改變對(duì)應(yīng)實(shí)參的值。
7.5 函數(shù)的正確調(diào)用(嵌套調(diào)用,遞歸調(diào)用)
1.調(diào)用函數(shù)時(shí),函數(shù)名必須與被調(diào)用的函數(shù)名字完全一樣。實(shí)參的個(gè)數(shù)與類型和形參的個(gè)數(shù)與類型一致。
2.C語(yǔ)言規(guī)定:函數(shù)必須先定義,后調(diào)用,也就是被調(diào)用函數(shù)必須在調(diào)用之前加以說(shuō)明,或被調(diào)用函數(shù)整個(gè)放在調(diào)用函數(shù)之前。但對(duì)返回值類型為int或char類型的函數(shù)可以放在調(diào)用函數(shù)的后面。
3.C語(yǔ)言中函數(shù)定義都是互相平行、獨(dú)立的,C語(yǔ)言不允許嵌套定義函數(shù),但允許嵌套調(diào)用函數(shù),也就是說(shuō),在調(diào)用一個(gè)函數(shù)的過(guò)程中,又調(diào)用另一個(gè)函數(shù)。
4.在C程序中,調(diào)用一個(gè)函數(shù)的過(guò)程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。
5.遞歸調(diào)用函數(shù)是C語(yǔ)言的特點(diǎn)之一,有時(shí)遞歸調(diào)用會(huì)使求解的問(wèn)題變得更簡(jiǎn)單明了。
7.6 局部變量和全局變量
1.局部變量
在一函數(shù)內(nèi)部所定義的變量稱為局部變量,局部變量只在本函數(shù)范圍內(nèi)有效。
注意:
、俨煌瘮(shù)可以使用相同的局部變量名,它們將代表不同的對(duì)象,互不干擾;
②一個(gè)函數(shù)的形參也為局部變量;
、墼诤瘮(shù)內(nèi)部,復(fù)合語(yǔ)句也可定義變量,這些變量也為局部變量,只在此復(fù)合語(yǔ)句中有效。
2.全局變量
在C語(yǔ)言中,程序的編譯單位是源程序文件,一個(gè)源程序文件中包含一個(gè)或多個(gè)函數(shù)。在函數(shù)之外所定義的變量稱為外部變量,也稱為全局變量。全局變量可以被包含它的源程序文件中的其他函數(shù)所共用,作用域?yàn)閺亩x變量的位置開(kāi)始到源程序文件結(jié)束,全局變量可以增加函數(shù)之間數(shù)據(jù)的聯(lián)系。
注意:當(dāng)在同一個(gè)源程序文件中,全局變量與局部變量同名時(shí),在局部變量的作用范圍內(nèi),全局變量不起作用,局部變量起作用。