聽翁愷講C語言6 函式

2022-07-18 17:21:28 字數 2288 閱讀 3667

**7、函式

引數和引數之間用,相隔開。

a、函式de定義:

函式就是一塊**,接收零或者多個引數,做一件事情並返回零個或乙個值。

eg:

void  //(空:返回型別) 

sum(函式名)(int begin, int end 參數列) //函式的頭

printf("%d到%d的和是%d\n", begin, end, sum); //函式的體

}

b、呼叫函式。

函式在main函式上方不需要預編譯。

·函式名(引數值) ·()起到了表示函式呼叫的重要作用。 ·即使沒有引數也需要() ·如果有引數,則需要給出正確的數量和順序。 ·這些值會被按照順序依次用來初始化函式中的引數。

void cheer()        

int main()

​ ·函式返回時會返回到正確的地方。

c、從函式中返回

​ 被呼叫函式執行完後可以向主函式輸出至多乙個值,稱之為返回值。

i、return:停止函式的執行,並送回乙個值。

ii、如果沒有返回值的函式,則要用void,void是不能夠使用帶值的return,呼叫的時候不能做返回的賦值。

iii、

如果函式有返回值,則必須使用帶值的return。

d、函式的先後關係

i、在進行函式呼叫的時候,要先進行函式宣告,才能將自定義函式放在主函式的後面。

#include void sum(int begin, int end);  //函式的原型宣告  ,"宣告"不是函式                

int main()

void sum(int begin, int end) //定義 (讓編譯器檢查對函式的宣告和定義是否一致)

printf("%d到%d的和是%d\n", begin, end);

} //13~22行:函式的定義

f、函式原型

i、函式頭,以分號";"結尾,構成了函式原型。

ii、函式原型的目的是告訴編譯器這個函式長什麼樣子。

iii、名稱

iv、引數

v、返回型別

vi、函式原型在舊版本c中習慣於寫在呼叫他的函式裡面,現在只需要寫在函式外就好。

vii、原型裡可不寫引數名字,但建議寫上

double max(double a), double b);   //函式原型  a b 是引數  

int main()

double max(double a, double b) //實際的函式頭

g、函式呼叫(本身也是表示式)

i、如果函式有引數,呼叫函式時必須傳遞給它數量、型別正確的值。

ii、可以傳遞給函式的值是表示式的結果,這包括:

iii、字面量 、變數 、函式的返回值 、計算的結果。

eg:

int a,b,c;        

a=5;

b=6;

c=max(10,12);

c=max(a,b);

c=max(c, 23);

c=max(max(23,33), a); max會被呼叫兩次

c=max(12+13, b);

·c語言在呼叫函式的時候,永遠只能傳值給函式

而現在就稱3和16中的為引數,10中的為值

h、本地變數

i、定義在函式內部的變數就是本地變數(區域性變數/自動變數)

·引數也是本地變數

ii、本地變數的規則

​ ·本地變數是定義在塊內的。 ·也可以是定義在語句的塊內(大括號內)。

i、函式庶事

i、函式原型裡面一定要把引數寫全。

ii、c語言不允許函式巢狀定義。(乙個函式裡不允許有另乙個函式,可以放宣告)

iii、eg:int i,j,sum(int a, int b);(應該把高亮的函式生命放在函式外面)

iiii、int main(void) //main是乙個函式,這個情況下void可寫可不寫。

聽翁愷講c語言3 條件判斷

a if語句int hour1,minute1 int hour2,minute2 printf 請輸入起始時間 小時 分鐘 n scanf d d hour1,minute1 printf 請輸入終止時間 小時 分鐘 n scanf d d hour2,minute2 int h hour2 ho...

翁愷老師C語言學習筆記(七)函式

includeint main printf d到 d的和是 d n 1,10,sum for i 20,sum 0 i 30 i printf d到 d的和是 d n 20,30,sum for i 35,sum 0 i 45 i printf d到 d的和是 d n 35,45,sum retu...

翁愷C語言程式設計 學習筆記5

變換看待方式,還有unsigned 在計算機內部,一串字元在現實中表示什麼取決於用什麼樣的方式去看待它,比如 d與 u同樣輸出同乙個位串,會不一樣。字面量,是在編譯器編寫介面裡的內容,可以有比如012表示8進製,編譯器會自動將其轉成10進製,但是這是編譯器這個層面的事情,在計算機底層只有2進製。進製...