大一 第五章 函式知識

2021-09-13 13:37:04 字數 2601 閱讀 4582

第五章 函式

前言: 函式是乙個命名的**塊,通過呼叫函式可以執行相應的**。 1 用來實現特定任務 2 庫函式

函式之間通過轉遞引數和返回值進行通訊。

c++支援按值和按引用傳遞引數;

c++允許過載函式;

一.函式定義

返回型別 函式名(引數列表)

函式體(語句塊)

引數列表 : 需要從外界獲取什麼

函式的結果 : 返回值

函式的運算元 : 引數

函式的引數列表不能省略,由逗號分隔的形參列表構成,每個形參型別之後跟乙個可選的形參名字。

如果函式不返回任何結果,可以將其返回型別宣告為void。

函式分類:

1 無參函式 2 有參函式 3 空函式

二.函式呼叫

函式名 (實參列表);

形參:函式定義中的引數。

實參:在呼叫函式是提供的資料

若實參型別與相應的形參型別不匹配,如果有可能,就會應用乙個**的型別轉換。

如:int a (int n)

當n取浮點數時,該實參能轉換為整數型別。(自動取整)

簡單應用: 用函式判斷素數

#include

#include

#include

#include

usingnamespace std;

intddd

(int x)

;int

main()

else

return0;

}int

ddd(

int x)

t=2;while

(t<=

sqrt

(x)&&x%t!=0)

++t;

if(x%t==0)

return0;

else

return1;

}

函式呼叫時完成的兩項工作:

實參初始化函式對應的形參

將控制權轉移可被呼叫的函式。

結束時return語句的兩個作用:

返回return語句中的值(如果有的話)

將控制權從被調函式轉移給主調函式。

三.函式宣告:

函式在使用前必須宣告。

(多次宣告,一次定義)

函式名,函式返回型別和形參列表構成了函式原型。

函式原型規定了函式的介面;

函式宣告說明了函式的介面;

四.引數傳遞

引數轉遞是指用函式呼叫的實參來初始化函式形參儲存區的過程。

引數轉遞方式:1.傳值2.傳引用

( 1 )按值傳遞 :用實參值初始化形參

缺點:在被呼叫函式中,形參值可以改變,但不影響主調函式的實參值。引數傳遞方向只是從實參到形參,簡稱:單向值傳遞。
不適用情況:

·當大型的類物件或結構體變數作為引數按值傳遞時,為物件在執行棧中分配空間並複製物件的時間和空間開銷往往夠大。
如果要改變實參的值,(兩種辦法):

將引數宣告為指標,用變數的位址實施呼叫。

(傳值呼叫)

將引數宣告為引用。

( 2 )按引用傳遞

按值傳遞時,函式操作的是實參的本地副本。

但引數是引用時,形參是實參的引用,函式操作的形參是實參的別名,因而可以改變實參的值。

引用引數的三種基本用途:

1.通過傳遞引用在函式內修改實參的值。

2.向主調函式返回格外的結果。

3.向函式傳遞乙個大型的結構體變數或類物件。

( 3 )陣列引數

在c++中陣列永遠不會按值傳遞,陣列做引數時,將傳遞陣列第乙個元素的位址,陣列的長度與引數宣告無關。

如: 下面三個宣告是等價的;

void foo (int *a);

void foo (int a[ ]);

void foo (int a[ 10 ]);

五.返回型別和return語句

兩種形式:

return;

return

表示式;

注意: 不能返回自動區域性物件的指標或引用。

六.函式過載

前言:幾個不同的函式可以使用相同的名字;

有時需要定義一組函式,它們對不同型別的資料執行同樣的一般性動作,表達相同的概念。

七.作用域和儲存型別

生產期:指程式執行過程中物件存在的時間。

(物件的生產期與物件的作業域和儲存型別密切相關)

作用域:程式的一段區域,名字的作業域指的是該名字可以在哪些程式文字區使用。

在函式外部定義的變數稱為外部變數或全域性變數;

在函式內部定義的變數稱為內部變數或區域性變數;

全域性變數陣列初始化全部為0;區域性變數值是隨機的,要初始化初值,區域性變數受棧空間大小限制,大陣列需要注意。

暫存器變數:用register宣告,對編譯器而言是乙個建議。

區域性物件:

自動物件

c++的函式會定義和使用一些區域性變數,當執行函式時,為其中定義的區域性變數分配空間,稱為自動物件。如:函式的形參。

靜態物件

需要在同乙個函式兩次呼叫之間保留某些資料。

可以將區域性變數物件宣告為static,這樣的物件是靜態儲存的。

第五章 函式

第五章 函式 1 函式的定義 shell函式定義可以放在 bash profile 檔案中,也可以在使用該函式的指令碼中,還可以在命令列中 通過 source 或 執行bash profile檔案,使修改能夠立即生效 function 函式名 declare f 顯示定義的函式清單 export f...

第五章 函式

在lua中,函式是對語句和表示式進行抽象的主要機制。即使呼叫函式時沒有引數,也必須要寫出一對空括號。一種特殊的例外情況 乙個函式若只有乙個引數,且此引數是乙個字面字串或table構造式,那麼圓括號別是可有可無的。print hello world dofile test.lua print a mu...

第五章知識回顧

1.終端機環境中,依據提示字元 和 判斷為一般賬號或者root 賬號 2.取得終端機支援的語系資料,echo lang 和 locale 指令,學會切換不同地區和國家的語言 lang en 3.date 可顯示日期 並學會控制其顯示格式例如,y m d h m cal可顯示日曆 學會準確查出某年某月...