




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——計算機二級C函數考點函數作為計算機二級C++科目的重要考點內容,為了便當考生們舉行學識點的穩定,下面是我為大家整理計算機二級C++函數考點,接待大家閱讀!
1函數定義
在標準C++中,函數的定義形式為:
<返回類型><函數名><形參列表>
{
<函數體>
}
<函數名>一般是標識符,一個程序只有一個main函數,其他函數名可肆意取當然,務必制止使用C++的關鍵字,好的程序設計風格要求函數名最好是取有助于記憶的名字,如getchar函數,通過函數的名字可以知道函數的功能,這無疑會增加程序的可讀性。
<形參列表>是由逗號分隔的,分別說明函數的各個參數。形參將在函數被調用時從調用函數那里獲得數據。在C++中,函數形參列表可以為空,即一個函數可以沒有參數。但即使函數形參列表為空,括起函數參數的一對圓括號也不允許省略。
<返回類型>又稱函數類型,表示一個函數所計算或運行的結果值的類型。假設一個函數沒有結果值,如函數僅用來更新或設置變量值、顯示信息等,那么該函數返回類型為void類型。一個沒有返回值的函數類似于一些程序語言如pascal語言中的過程procedure。
由一對花括號括起來的<函數體>是語句的序列,它定義了函數應執行的概括操作。
需要留神的是,C++不允許函數定義嵌套,即在一個函數體內不能包含有其他函數的定義。
2函數調用
C++中函數調用的一般形式為:
<函數名><實參表>
當調用一個函數時,其實參的個數、類型及排列次序務必與函數定義時的形參相一致,也就是說實參與形參理應一對一地匹配。當函數定義時沒有形參,那么函數調用時,<實參表>亦為空。
依據對函數返回值的使用方式,函數的調用方法可分為以下幾種:
1語句調用,這通常用于不帶返回值的函數。這種處境下,被調用函數作為一個獨立的語句展現在程序中。
2表達式調用。將被調用函數作為表達式的一片面來舉行調用。它適用于被調用函數帶有返回值的處境。
3參數調用。被調用函數作為另一個函數的一個參數舉行調用。
3函數原型
在C++中,函數在使用之前要預先聲明。這種聲明在標準C++中稱為函數原型functionprototype,函數原型給出了函數名、返回類型以及在調用函數時務必供給的參數的個數和類型。函數原型的語法為:
<返回類型><函數名><形參列表>;
留神在函數原型后要有分號
實際上函數原型說明有兩種形式:
1直接使用函數定義的頭部,并在后面加上一個分號。
2在函數原型說明中省略參數列表中的形參變量名,僅給出函數名、函數類型、參數個數及次序。
留神:在C++中,在調用任何函數之前,務必確保它已有原型說明。函數原型說明通常放在程序文件的頭部,以使得該文件中全體函數都能調用它們。實際上,標準函數的原型說明放在了相應的頭文件中,這也是為什么在調用標準函數時務必要包含相應的頭文件的理由之一。
在了解了函數定義、函數調用和函數原型之后,就可以寫出一個完整的C++程序,并可將其編譯和運行。
4函數返回類型
根據函數是否帶有參數以及函數是否有返回值,可以將函數分為如下四類。
1帶參數的有返回值函數
定義形式為:
<返回類型><函數名><參數列表>
{
<語句序列>
}
2不帶參數的有返回值函數
定義形式為:
<返回類型><函數名>
{
<語句序列>
}
3帶參數的無返回值函數
定義形式為:
void<函數名><參數列表>
{
<語句序列>
}
4不帶參數的無返回值函數
定義形式為:
void<函數名>
{
<語句序列>
}
5函數參數
C++中,函數之間傳遞參數有傳值和傳地址兩種傳遞方式。此外,C++還供給了默認參數機制,可以簡化繁雜函數的調用。
1參數的傳遞方式
1傳值
傳值是將實參值的副本傳遞拷貝給被調用函數的形參。它是C++的默認參數傳遞方式,在此之前的多數函數參數傳遞都是傳值。
由于傳值方式是將實參的值復制到形參中,因此實參和形參是兩個不同的變量,有各自的存儲空間,可以把函數形參看作是函數的局部變量。傳值的最大好處是函數調用不會變更調用函數實參變量的內容,可制止不必要的副作用。
2傳地址
有時我們切實需要通過函數調用來變更實參變量的值,或通過函數調用返回多個值return語句只能返回一個值,這時僅靠傳值方式是不能達成目的。
2默認參數
在C++中,可以為參數指定默認值,在函數調用時沒有指定與形參相對應的實參時就自動使用默認值。默認參數可以簡化繁雜函數的調用。
默認參數通常在函數名第一次展現在程序中的時候,如在函數原型中,指定默認參數值。指定默認參數的方式從語法上看與變量初始化好像。
6函數重載
假設能用同一個函數名字在不同類型上做相類似的操作就會便當好多,這種處境即為函數重載。其實這一技術早已用于C++的根本運算符。例如加法操作只有一個運算符+,但它卻可以用來做整型數、浮點數和指針的加法運算。將這一思想推廣到函數,即為函數重載。
7內聯函數
C++引入內聯inline函數的理由是用它來取代C中的預處理宏函數。內聯函數和宏函數的識別在于,宏函數是由預處理器對宏舉行替換,而內聯函數是通過編譯器來實現的,因此內聯函數是真正的函數,只是在調用的時候,內聯函數像宏函數一樣的開展,所以它沒有一般函數的參數壓棧和退棧操作,裁減了調用開銷,因此,內聯函數比普遍函數有更高的執行效率。
在C++中使用inline關鍵字來定義內聯函數。inline關鍵字放在函數定義中函數類型之前。不過,編譯器會將在類的說明片面定義的任何函數都認定為內聯函數,即使它們沒有用inline說明。
8遞歸函數
假設一個函數在其函數體內直接或間接地調用了自己,該函數就稱為遞歸函數。遞歸是解決某些繁雜問題的特別有效的方法。遞歸適用以下的一般場合。
1數據的定義形式按遞歸定義。
2數據之間的關系即數據布局按遞歸定義,如樹的遍歷,圖的探尋等。
3問題解法按遞歸算法實現,例如回溯法等。
使用遞歸需要留神以下幾點:
1用遞歸編寫代碼往往較為干脆,但要犧牲確定的效率。由于系統處理遞歸函數時都是通過壓棧/退棧的方式實現的。
2無論哪種遞歸調用,都務必有遞歸出口,即終止遞歸調用的條件。
3編寫遞歸函數時需要舉行遞歸分析,既要保證正確使用了遞歸語句,還要保證完成了相應的操作。
9變量作用域與生存周期
1C++中變量的存儲類型分為如下幾種類型:
auto——函數內部的局部變量auto可省略不寫。
static——靜態存儲調配,又分為內部和外部靜態。
extern——全局變量用于外部變量說明。
register——變量存儲在硬件寄放器中。
1自動變量
①在函數內部定義的局部變量即為自動變量,用于說明自動變量的關鍵字auto可以省略。
②在函數頭部定義的自動變量作用域為定義它的函數;而在塊語句中定義的自動變量作用域為所在塊。與C不同,C++還允許在變量使用之前才定義變量。
③編譯程序不給自動變量賦予隱含的初值,故其初值不確定。因此,每次使用自動變量前,務必明確地賦初值。
④形參可以看成是函數的自動變量,作用域僅限于相應函數內。
⑤自動變量所使用的存儲空間由程序自動地創造和釋放。當函數調用時為自動變量創造存儲空間,函數調用終止時將自動釋放為其創造的存儲空間。因此,自動變量隨函數的調用而存在并隨函數調用終止而消散,由一次調用到下一次調用之間不保存值。
2外部變量
①在函數外部定義的變量即為外部變量。
②外部變量的作用域是整個程序全局變量。
③在C++中,程序可以分別放在幾個源文件上,每個文件可作為一個編譯單位分別編譯。外部變量只需在某個文件上定義一次,其他文件若要引用此變量時,應用extern加以說明。外部變量定義時不必加extern關鍵字。
④在同一文件中,若前面的函數要引用在其后面定義的外部在函數之外變量時,也應用extern加以說明。
⑤外部變量是由編譯程序在編譯時給其調配空間,屬于靜態調配變量,對于數值型整型、浮點型和字符型外部變量來說,其有隱含初值0。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一英語活動方案
- 安全三級教育試題及答案
- 共享圖書+活動方案
- 共享果蔬機活動方案
- 共享超市活動方案
- 共建社區活動方案
- 關于舉辦端午活動方案
- 羊水栓塞考試試題及答案
- 眼科中級考試試題及答案
- 煙葉站考試試題及答案
- 機械原理課程設計20篇
- 房顫的規范化治療
- 登高車高空作業施工方案
- 家具廠客戶投訴處理手冊
- 二位數乘二位數的計算題50道
- 2024年化學水處理工(技師)技能鑒定理論考試題庫(含答案)
- 貴州省貴陽市2024年小升初語文模擬考試試卷(含答案)
- 2024高速養護工區標準化建設指南
- 湖北省隨州市隨縣2023-2024學年七年級下學期語文期末考試卷
- 2024年中國城建圍擋板市場調查研究報告
- 北京市海淀區101中學2025屆數學八年級第一學期期末統考試題含解析
評論
0/150
提交評論