亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【學習筆記】【C語言】函數

2019-11-14 18:50:52
字體:
來源:轉載
供稿:網友

一、 什么是函數

任何一個C語言程序都是由一個或者多個程序段(小程序)構成的,每個程序段都有自己的功能,我們一般稱這些程序段為“函數”。所以,你可以說C語言程序是由函數構成的。

比如你用C語言編寫了一個MP3播放器程序,那么它的程序結構如下圖所示:

clip_image002

二、 函數的定義

1. 定義函數的目的

將一個常用的功能封裝起來,方便以后調用

2. 定義函數的步驟

函數名:函數叫什么名字

函數體:函數是干啥的,里面包含了什么代碼

3. 格式

固定格式(很多語言的函數都是這么寫的)

返回值類型 函數名(形式參數列表)

{

函數體

}

 

舉例

定義一個函數,計算兩個整數的和

sum(int a, int b)

{

int c = a + b;

}

三、 函數調用

sum(10, 11); 引出返回值

說明函數的調用過程

簡述return的作用

四、 函數的參數

1. 形參和實參的基本概念

2. 形參個數和實參一致:sum(10, 11, 12)

3. 參數的傳遞是值傳遞

4. 參數名不能跟函數內的局部變量同名

5. 函數可以沒有參數:設計一個函數返回PI

五、 函數的返回值

1. 返回值的基本概念、return的作用

2. void

3. return

void可以省略return

可以多次使用return

return后面不能有其他語句

4. 函數的弱語法

如果沒有寫返回值類型,默認是int

如果寫了返回值,可以不返回

調用一個沒有定義過的函數

六、 定義函數的步驟

1. 明確函數作用,起一個有意義的函數名稱

2. 明確函數的參數和返回值

3. 舉例:

求兩個整數的和

打印一條橫線

打印N條橫線

七、 函數注意

不能嵌套定義函數

死循環調用,自己調用自己

不能重復定義、可以重復聲明

八、 函數的補充

1. main函數

返回值:0,正常退出;1,異常退出

2. PRintf函數

#include

返回值:字符串的長度

九、 函數的聲明

1. 函數的定義順序

2. 函數的聲明作用:聲明和定義,類似于身份證和人的關系,編譯買機票、鏈接登機

clip_image004

3. 只有函數聲明、沒有定義,編譯警告、鏈接報錯

十、 .h文件和.c文件的分工

1. 單文件的壞處

一個文件的內容太多,不利于閱讀、調試

多人修改同一個文件出問題

公司里面是團隊合作

2. 將sum函數抽取到另一個.c文件中

先直接調用sum函數,編譯警告、鏈接main.c錯誤

#include “sum.c” , 編譯鏈接main.c,運行成功(畫圖分析.o文件中的東西)

如果avr.c中使用sum.c,編譯鏈接main.c,運行程序(畫圖分析出錯原因)

3. 在其他文件中聲明sum函數

int sum(int,int);

編譯鏈接main.c

編譯鏈接sum.c

編譯鏈接main.c sum.c,運行成功

avr.c利用一樣的方法

4. 將int sum(int,int)抽取到另外一個文件中

不抽取聲明的壞處:增加新的函數了

抽取到.c文件中?開發工具會將所有的.c進行編譯鏈接

抽取到.h文件中

5. 抽取步驟總結

.c文件寫函數的定義

.h文件寫函數的聲明

要想用我的函數,請包含我的.h文件

好處分析

十一、 代碼

1.

 1 #include <stdio.h> 2  3 /* 4  1.什么情況下定義函數:添加一個常用的新功能 5   6  2.函數的定義格式 7  返回值類型  函數名(形式參數列表) 8  { 9     函數體10  }11  12  3.定義函數需要明確的東西13  1> 起一個有意義的函數名14  2> 15  */16 17 int printLine()18 {19     printf("-------------/n");20     return 0;21 }22 23 int average(int num1, int num2)24 {25     return (num1 + num2)/2;26 }27 28 int main()29 {30     /*31     printLine();32     33     printLine();34     35     printLine();36      */37     38     int a = 10;39     int b = 9;40     41     int c = average(a, b);42     43     printf("c is %d/n", c);44     45     int a1 = 11;46     int b1 = 20;47     48     int d = average(a1, b1);49     printf("d is %d/n", d);50     51     return 0;52 }

2.

 1 #include <stdio.h> 2 /* 3  參數注意點 4  1.形式參數:定義函數時函數名后面中的參數,簡稱形參 5  2.實際參數:調用函數式傳入的具體數據,簡稱實參 6  3.實參個數必須等于形參個數 7  4.函數體內部不能定義和形參一樣的變量 8  5.如果是基本數據類型作為函數形參,純粹是值傳遞,修改函數內部形參的值,并不會影響外面實參的值 9  6.一個函數可以沒有形參,也可以有無限多個形參10  */11 12 // 形式參數,簡稱形參13 int sum(int num1, int num2)14 {15     // 函數體內部不能定義和形參一樣的變量16     // int num1;17 18     num1 = 50;19 20     return num1 + num2;21 }22 23 /*24  return的作用:25  1> 退出函數26  2> 返回一個具體值給函數調用者27  28  返回值注意點29  1> void代表沒有返回值30  2> 如果沒有明確說明返回值類型,默認是返回int類型31  3> 就算明確聲明了返回值類型,也可以不返回任何值32  33  默認情況下,C語言不允許兩個函數的名稱一樣34  */35 36 char test()37 {38     return 'A';39 }40 41 /*42 void test(int a, int b)43 {44 45 }*/46 47 void test5()48 {49     50 }51 52 /* 偽代碼53 void login(QQ, 密碼)54 {55     // 1.驗證QQ有沒有值56     if (QQ沒有值) return;57     58     // 2.驗證密碼有沒有值59     if (密碼沒有值) return;60     61     // 3.把QQ、密碼發送到服務器62     63 }*/64 65 int test3()66 {67     printf("999999999/n");68 }69 70 // 如果不明確聲明返回值類型,默認就是int類型71 test2()72 {73     printf("888888888/n");74     return 10;75 }76 77 int main()78 {79     int c = test2();80     printf("c=%d/n", c);81     82     test3();83     //test();84     85     /*86     int a = 100;87     int b = 27;88     89     // a、b稱為函數的實際參數,簡稱實參90     int c = sum(a, b);91     92     93     printf("a=%d, b=%d, c=%d/n", a, b, c);*/94 95     return 0;96 }

3.函數練習

 1 /* 2     求兩個整數的差 3     打印一條橫線 4     打印N條橫線 5   6  定義函數的步驟 7  1> 根據函數的作用,起一個有意義的名稱 8  2> 確定函數的形參個數 9  3> 確定函數的返回值10  */11 #include <stdio.h>12 13 void printLines(int n)14 {15     for (int i = 0; i<n; i++)16     {17         printf("-------------------/n");18     }19 }20 21 void printLine()22 {23     printf("-------------------/n");24 }25 26 int minus(int a, int b)27 {28     return a - b;29 }30 31 int main()32 {33     printLines(10);34     //printLine();35     //printf("%d/n", minus(100, 29));36     37     return 0;38 }

4.函數注意點

 1 #include <stdio.h> 2 /* 3  1.默認情況下,不允許有函數的名稱一樣 4  2.函數不能嵌套定義 5  3.函數不能重復定義,但是可以重復聲明 6  4.如果有函數的聲明,沒有函數的定義 7  1> 編譯可以通過,因為編譯器只會檢測語法合不合理,并不會檢測函數有沒有定義 8  2> 鏈接報錯,因為鏈接的時候會檢測函數是否定義 9  10  */11 12 // 函數的聲明13 //void printLine();14 //void printLine();15 //void printLine();16 //void printLine();17 //void printLine();18 //void printLine();19 20 int main()21 {22     void printLine();23     24     printLine();25     return 0;26 }27 28 // 函數的定義29 30 void printLine()31 {32     printf("--------/n");33 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品电影网| 97香蕉久久夜色精品国产| 在线视频精品一| 国产精品中文在线| 国产精品人成电影在线观看| 国产一区二区三区毛片| 欧洲s码亚洲m码精品一区| 亚洲精品久久久久久久久久久久久| 亚洲性视频网址| 亚洲激情成人网| 欧美日韩国产激情| 成人黄色激情网| 亚洲片av在线| 久久久亚洲福利精品午夜| 午夜精品一区二区三区在线视| 亚洲精品免费网站| 色诱女教师一区二区三区| 欧美激情视频一区二区三区不卡| 欧美成人网在线| 亚洲欧洲日本专区| 欧美精品制服第一页| 欧美激情国产高清| 在线观看日韩av| 国产精品自拍小视频| 精品国产网站地址| 亚洲图片在区色| 精品一区二区三区三区| 色噜噜久久综合伊人一本| 国产精品久久久久久久久久东京| 欧美二区在线播放| 亚洲综合社区网| 亚洲国产精彩中文乱码av| 亚洲欧美日韩天堂| 亚洲在线观看视频| 亚洲人成电影网站色| 国产va免费精品高清在线| 久久九九精品99国产精品| 欧美亚洲国产视频| 国产亚洲xxx| 黑人狂躁日本妞一区二区三区| 久久九九免费视频| 久久久精品美女| 亚洲精品国产suv| 亚洲精品www| 亚洲国产精品成人一区二区| 国产精品久久久久久影视| 久久亚洲国产精品成人av秋霞| 欧美野外猛男的大粗鳮| 在线不卡国产精品| 不卡av在线播放| 亚洲精品视频在线观看视频| 日韩在线欧美在线| 久久躁日日躁aaaaxxxx| 亚洲午夜国产成人av电影男同| 久青草国产97香蕉在线视频| 色www亚洲国产张柏芝| 亚洲日本中文字幕免费在线不卡| 国产亚洲精品美女久久久| 亚洲免费av片| 在线看国产精品| 欧美丝袜一区二区三区| 亚洲人成伊人成综合网久久久| 亚洲精品视频久久| 亚洲人成电影在线| 中文字幕在线视频日韩| 亚洲成人精品视频在线观看| 国产精品白丝jk喷水视频一区| 91欧美视频网站| 欧美裸体视频网站| 色老头一区二区三区| 欧美一级bbbbb性bbbb喷潮片| 亚洲人成电影在线观看天堂色| 日本欧美黄网站| 亚洲国产精品推荐| 欧美日韩亚洲视频一区| 91精品国产色综合| 亚洲电影免费观看高清完整版| 精品视频中文字幕| 日韩欧美在线中文字幕| 欧美日韩午夜视频在线观看| 国产精品极品美女在线观看免费| 久久成人精品电影| 久久久久在线观看| 欧美一级片在线播放| 亚洲qvod图片区电影| 91精品视频网站| 欧美日韩国产丝袜美女| 亚洲国模精品一区| 亚洲黄色成人网| 亚洲自拍av在线| 国产欧美在线播放| 美日韩精品免费视频| 最近免费中文字幕视频2019| 最新亚洲国产精品| 亚洲美女福利视频网站| 日韩国产高清污视频在线观看| 亚洲国产欧美一区| 日韩电影在线观看免费| 久久激情视频久久| 亚洲第一页中文字幕| 久久亚洲电影天堂| 97成人精品区在线播放| 欧美一级电影免费在线观看| 成人观看高清在线观看免费| 视频一区视频二区国产精品| 最近2019中文字幕一页二页| 国产精品黄页免费高清在线观看| 欧美大成色www永久网站婷| 久久精品视频播放| 中文字幕国产精品| 国产精品亚洲欧美导航| www.午夜精品| 高清欧美电影在线| 日韩高清欧美高清| 欧美激情va永久在线播放| xvideos亚洲| 91九色综合久久| 亚洲一区二区三区毛片| 亚洲欧美日韩综合| 欧美日韩亚洲精品一区二区三区| 法国裸体一区二区| 亚洲人成电影在线| 51久久精品夜色国产麻豆| 成人在线中文字幕| 久久精品福利视频| 欧美日韩第一视频| 国产精品激情自拍| 国产精品久久精品| 97人洗澡人人免费公开视频碰碰碰| 久久99国产综合精品女同| 欧美日产国产成人免费图片| 亚洲日本成人女熟在线观看| 韩国视频理论视频久久| 国产视频丨精品|在线观看| 日本一欧美一欧美一亚洲视频| 91免费看视频.| 欧美日韩亚洲激情| 欧美日韩国产丝袜美女| 91在线观看免费网站| 最好看的2019的中文字幕视频| 国产精品av免费在线观看| 国产精品国产福利国产秒拍| 亚洲国产精品久久久久久| 精品二区三区线观看| 97成人精品区在线播放| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲一区二区免费| 欧美乱妇40p| 欧美日本在线视频中文字字幕| 中文字幕国产精品久久| 人人爽久久涩噜噜噜网站| 亚洲人成欧美中文字幕| 欧美色视频日本版| 九九九久久国产免费| 日本aⅴ大伊香蕉精品视频| 国产精品视频久久| 久久久伊人日本| 日韩中文字幕亚洲| 日韩精品极品视频免费观看| 91精品视频播放| 中文字幕亚洲一区| 亚洲福利视频久久| 日韩视频免费大全中文字幕| 久久99国产精品自在自在app|