**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進製。進製...