c語言函式

2021-08-28 04:29:21 字數 2922 閱讀 5720

第十次課----函式

一、函式的定義:包括兩個部分,分別是「函式頭」和「函式體」

返回值型別   函式名(形式引數1, 形參2, ...)//函式頭

//函式體

注意1:函式的返回值和引數可以是任意型別,包括空型別!!

void printfstart(void)//列印一行星號

注意2:函式名是一種識別符號,必須符合識別符號的命名規則!通常用動詞

注意3:函式的引數可以是乙個變數

void sel(int n)//n表示輸入的分數

思考:異常程式存在的缺陷:變數n的值沒有進行異常檢查,改進如下

void sel(int n)//n表示輸入的分數

if (n > 90)

printf("你的成績屬於優秀!");

else if (n > 80)

printf("你的成績屬於良好!");

else if (n > 70)

printf("你的成績屬於中等!");

else if (n > 60)

printf("你的成績屬於及格!");

else

printf("你的成績屬於不及格!");

return;//無意義的return!可以省略 改進如下

}思考上面程式的缺陷:如果成績非法應該返回假(0),正常結束返回真(1)!

void sel(int n)//n表示輸入的分數

if (n > 90)

printf("你的成績屬於優秀!");

else if (n > 80)

printf("你的成績屬於良好!");

else if (n > 70)

printf("你的成績屬於中等!");

else if (n > 60)

printf("你的成績屬於及格!");

else

printf("你的成績屬於不及格!");

return 1;//無意義的return! 改進如下

}通過上面案例說明函式的返回值通常用於返回真或者假,還可以用於返回乙個數

demo:我們做乙個求和的函式 引數:兩個整數,返回乙個整數

int add(int a, int b)

思考以上程式的缺陷,c是多餘的變數定義!!且沒有賦初值,改進如下

int add(int a, int b)

void foo(int a)

int main(void)

總結:1.函式名要符合識別符號命名規則

2.定義時的引數叫形參,個數沒有限制,型別沒有限制

3.返回值的型別沒有限制

3.return 表示式; return語句後面的表示式是可以省略的

如果return後有表示式則返回值型別必須和表示式型別一致

如果return後沒有表示式則用於中斷函式執行

以上函式不呼叫是無法得到執行的!,函式要想被執行必須呼叫之

二、函式的呼叫:

語法 : 函式名(實際引數1,實參2,。。。。)

注意:1 > a函式呼叫b函式,則a函式叫主調函式,b叫被呼叫函式

demo printstar();

2 > 呼叫的引數個數、順序、型別要與定義相同 demo add(1, 2);

3 > 函式呼叫步驟

step1.實參的值賦值給形參

step2.執行函式體

step3.返回主調函式

demo sel(10);

思考:函式名是否和變數名一樣叫「識別符號」?

思考:識別符號是否要先定義後使用?

demo

int main(void)//錯誤,識別符號a要先定義後使用,改進如下

int main(void)

思考:下面程式的錯誤原因

demo

int main(void)

void printstar(void)//識別符號printstar要先定義後使用!

三、函式的宣告:

宣告的方式:只保留函式頭且後面加分號

demo:

void printstar(void);//宣告

int main(void)

void printstar(void)//定義

思考:宣告、呼叫、定義的區別和作用域

函式的定義:包括函式頭和函式體

函式的呼叫:用於執行定義的函式,通常先定義後呼叫

函式的宣告:用於擴充套件函式名稱的作用域,使得可以先宣告後使用!

demo計算器實現加減乘除

思考方式:

step1.分析計算器的功能包括:加減乘除四個功能,因此要寫四個函式

int add(int a, int b)

int sub(int a, int b)

int mul(int a, int b)

int div(int a, int b)

int main(void)

step2.分許用於的使用流程,如先提示顯示選單,提示用於選擇,這個也算乙個功能因此也要寫乙個函式

void menu(void)

step3.顯示選單後要實現使用者的輸入,且使用者非法輸入的話要重新輸入

int main(void)

break;

}return 0;

}step4.選擇正確後,要輸入兩個數,然後計算

int main(void)

break;

}//輸入兩個數

int a = 0, b = 0;

printf("請輸入第乙個數:");

scanf_s("%d", &a);

printf("請輸入第二個數:");

scanf_s("%d", &b);

//計算

switch (n)

return 0;

}思考:

1.加減乘等子函式放到主函式下面可以嗎?然後複習宣告

2.子函式放到其他檔案可以嗎?複習宣告

C語言 函式

1 實參和形參在數量上,型別上,順序上應嚴格一致,否則會發生 型別不匹配 錯誤。2 實參可以是常量,變數,表示式甚至是函式。但是在傳遞給函式前,必須有確定的值。3 形參變數只有在被呼叫時才分配記憶體單元,只有在函式內部有效,函式結束後不能再使用。4 實參和形參佔據不同的儲存單元。5 函式預設採用值傳...

c語言 函式

函式是實現某個功能的 段 函式之間的關係是並列的,不能巢狀 函式的定義 函式的返回值型別 函式名 引數的型別 引數名1.正常的函式有三部分 1.函式的宣告 2.函式的定義 3.函式的呼叫 如果函式在定義之前被呼叫的話,需要對函式提前進行宣告,當然在定義之後在呼叫如果沒有宣告也不會提示錯誤 函式的返回...

C語言函式

和變數 控制流 條件一樣 函式也是現代程式語言的基本組成部分。他可以使我們在應用中重複利用一塊 對於 的組織和維護是很有必要的。您將在ios和os x的框架中發現大量的例子。像其他的基礎元素一樣,object c的函式也是建立在c語言函式之上的。這章我們將介紹c語言最重要的方面,包括基本語法 宣告和...