C語言-函數(shù)初步_第1頁
C語言-函數(shù)初步_第2頁
C語言-函數(shù)初步_第3頁
C語言-函數(shù)初步_第4頁
C語言-函數(shù)初步_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、n系統(tǒng)已有的函數(shù),怎樣去使用?系統(tǒng)已有的函數(shù),怎樣去使用?n比如:比如:void circle( int x, int y, int radius ); 參數(shù):參數(shù):nx: 圓的圓心圓的圓心 x 坐標(biāo)。坐標(biāo)。ny :圓的圓心圓的圓心 y 坐標(biāo)。坐標(biāo)。nradius: 圓的半徑。圓的半徑。返回值:(無)返回值:(無)Chap 7 函數(shù)初步引入函數(shù)初步引入 函數(shù)的調(diào)用函數(shù)的調(diào)用-方式方式1#include / 引用圖形庫引用圖形庫#include void main() initgraph(640, 480); / 初始化繪圖窗口初始化繪圖窗口 circle(200, 200, 100); / 畫

2、圓,圓心畫圓,圓心(200, 200),半徑,半徑 100 getch(); / 按任意鍵繼續(xù)按任意鍵繼續(xù) closegraph(); / 關(guān)閉圖形界面關(guān)閉圖形界面 函數(shù)的調(diào)用函數(shù)的調(diào)用-方式方式2#include / 引用圖形庫引用圖形庫#include void main() int x, y, r;x=200, y=200, r=100;initgraph(640, 480); / 初始化繪圖窗口初始化繪圖窗口 circle(x, y, r); / 畫圓,圓心畫圓,圓心(200, 200),半徑,半徑 100 getch(); / 按任意鍵繼續(xù)按任意鍵繼續(xù) closegraph(); /

3、 關(guān)閉圖形界面關(guān)閉圖形界面 Chap 7 函數(shù)初步函數(shù)初步 7.1 計(jì)算圓柱體積計(jì)算圓柱體積7.2 使用函數(shù)編寫程序使用函數(shù)編寫程序7.3 變量與函數(shù)變量與函數(shù)本章要點(diǎn)本章要點(diǎn)n怎樣定義函數(shù)?如何調(diào)用函數(shù)?如何聲怎樣定義函數(shù)?如何調(diào)用函數(shù)?如何聲明函數(shù)?明函數(shù)?n什么是函數(shù)的參數(shù)?在函數(shù)調(diào)用時(shí),參什么是函數(shù)的參數(shù)?在函數(shù)調(diào)用時(shí),參數(shù)是如何傳遞的?數(shù)是如何傳遞的?n在使用函數(shù)的過程中,要注意哪些問題?在使用函數(shù)的過程中,要注意哪些問題?怎樣確定函數(shù)的參數(shù)?怎樣確定函數(shù)的參數(shù)?n如何使用局部變量和全局變量?如何使用局部變量和全局變量?n什么是靜態(tài)變量?什么是靜態(tài)變量?7.1 計(jì)算圓柱體積計(jì)算圓柱體

4、積7.1.1 程序解析程序解析7.1.2 函數(shù)的定義函數(shù)的定義7.1.3 函數(shù)的調(diào)用函數(shù)的調(diào)用7.1.1 程序解析計(jì)算圓柱體積程序解析計(jì)算圓柱體積 例例7-1 輸入圓柱輸入圓柱體體的高和半徑,求圓柱體積的高和半徑,求圓柱體積,volume=*r2*h。要求定義和調(diào)用函數(shù)要求定義和調(diào)用函數(shù)cylinder (r, h )計(jì)算圓計(jì)算圓柱體的體積。柱體的體積。 例例7-1源程序源程序/* 計(jì)算圓柱體積計(jì)算圓柱體積 */#include int main( void ) double height, radius, volume;double cylinder (double r, double h)

5、; /* 函數(shù)聲明函數(shù)聲明*/printf (Enter radius and height: );scanf (%lf%lf, &radius, &height); /* 調(diào)用函數(shù)調(diào)用函數(shù),返回值賦給,返回值賦給volume */volume = cylinder (radius, height );printf (Volume = %.3fn, volume);return 0;例例7-1源程序源程序/* 定義求圓柱體積的函數(shù)定義求圓柱體積的函數(shù) */double cylinder (double r, double h)double result;result =3.14

6、15926 * r * r * h; /* 計(jì)算體積計(jì)算體積 */return result; /* 返回結(jié)果返回結(jié)果 */Enter radius and height: 3.0 10Volume = 282.7437.1.2 函數(shù)的定義函數(shù)的定義 n函數(shù)是指完成一個(gè)特定工作的獨(dú)立程序模塊。函數(shù)是指完成一個(gè)特定工作的獨(dú)立程序模塊。庫函數(shù):由庫函數(shù):由C語言系統(tǒng)提供定義語言系統(tǒng)提供定義如如scanf()、()、printf()等函數(shù)()等函數(shù)自定義函數(shù):需要用戶自己定義自定義函數(shù):需要用戶自己定義如計(jì)算圓柱體體積函數(shù)如計(jì)算圓柱體體積函數(shù)cylinder()()nmain()也是一個(gè)函數(shù),也是一

7、個(gè)函數(shù),C程序由一個(gè)程序由一個(gè)main()或多個(gè)或多個(gè)函數(shù)構(gòu)成。函數(shù)構(gòu)成。n程序中一旦調(diào)用了某個(gè)函數(shù),該函數(shù)就會完成一些程序中一旦調(diào)用了某個(gè)函數(shù),該函數(shù)就會完成一些特定的工作,然后返回到調(diào)用它的地方。特定的工作,然后返回到調(diào)用它的地方。函數(shù)經(jīng)過運(yùn)算,得到一個(gè)明確的運(yùn)算結(jié)果,并需要回送函數(shù)經(jīng)過運(yùn)算,得到一個(gè)明確的運(yùn)算結(jié)果,并需要回送該結(jié)果。例如,函數(shù)該結(jié)果。例如,函數(shù)cylinder()返回圓柱的體積。返回圓柱的體積。函數(shù)完成一系列操作步驟,不需要回送任何運(yùn)算結(jié)果。函數(shù)完成一系列操作步驟,不需要回送任何運(yùn)算結(jié)果。1返回運(yùn)算結(jié)返回運(yùn)算結(jié)果的函數(shù)定義果的函數(shù)定義函數(shù)類型函數(shù)類型 函數(shù)名(形參表)函數(shù)

8、名(形參表)/* 函數(shù)首部函數(shù)首部 */ /* 函數(shù)體函數(shù)體 */ 函數(shù)實(shí)現(xiàn)過程函數(shù)實(shí)現(xiàn)過程 return 表達(dá)式;表達(dá)式;把函數(shù)運(yùn)算的結(jié)果回送給主函數(shù)把函數(shù)運(yùn)算的結(jié)果回送給主函數(shù)只能返回一個(gè)值只能返回一個(gè)值函數(shù)返回值的類型函數(shù)返回值的類型沒有分號沒有分號double cylinder (double r, double h) double result; result = 3.1415926 * r * r * h; return result;形參形參類型類型1 參數(shù)參數(shù)1 ,類型,類型2 參數(shù)參數(shù)2 ,類型,類型n 參數(shù)參數(shù)n參數(shù)之間用逗號分隔,每個(gè)參數(shù)前面的類型都必須分別寫明參數(shù)之間用

9、逗號分隔,每個(gè)參數(shù)前面的類型都必須分別寫明函數(shù)類型函數(shù)類型 函數(shù)名(形參表)函數(shù)名(形參表) 函數(shù)實(shí)現(xiàn)過程函數(shù)實(shí)現(xiàn)過程 return 表達(dá)式;表達(dá)式;不能寫成不能寫成 double r, hdouble cylinder (double r, double h) double result; result =3.1415926 * r * r * h; return result;double cylinder (double r, double h) /* 函數(shù)首部函數(shù)首部 */* 函數(shù)體函數(shù)體,寫在一對大括號內(nèi),寫在一對大括號內(nèi) */ double result;result =3.141

10、5926 * r * r * h; /* 計(jì)算圓柱體積計(jì)算圓柱體積 */return result; /* 返回運(yùn)算結(jié)果返回運(yùn)算結(jié)果*/分析函數(shù)的定義分析函數(shù)的定義函數(shù)類型函數(shù)類型函數(shù)名函數(shù)名形參表形參表與函數(shù)類型一致與函數(shù)類型一致2不返回運(yùn)算結(jié)不返回運(yùn)算結(jié)果的函數(shù)定義果的函數(shù)定義void 函數(shù)名(參數(shù)表)函數(shù)名(參數(shù)表) /* 函數(shù)首部函數(shù)首部 */ /* 函數(shù)體函數(shù)體 */ 函數(shù)實(shí)現(xiàn)過程函數(shù)實(shí)現(xiàn)過程 return; /* 可以省略可以省略return */這類函數(shù)通常用于屏幕輸出等這類函數(shù)通常用于屏幕輸出等表示不返回結(jié)果表示不返回結(jié)果不能省略不能省略否則否則函數(shù)類型被默認(rèn)定義為函數(shù)類型被默

11、認(rèn)定義為int例子例子:#include void printstar ( ) /* 函數(shù)首部函數(shù)首部 */* 函數(shù)體函數(shù)體,寫在一對大括號內(nèi),寫在一對大括號內(nèi) */ printf(“*n”);void main() printstar ( );printf(“* Welcome *n”); printstar ( );函數(shù)與加工機(jī)器的比較函數(shù)與加工機(jī)器的比較完成某種功能的函數(shù)完成某種功能的函數(shù)可以看成是一個(gè)可以看成是一個(gè)具有加工功能的具有加工功能的機(jī)器機(jī)器進(jìn)料口:函數(shù)參數(shù)進(jìn)料口:函數(shù)參數(shù)材料:數(shù)據(jù)材料:數(shù)據(jù)進(jìn)料口數(shù)目:進(jìn)料口數(shù)目:0或多個(gè)或多個(gè)規(guī)格口徑:由參數(shù)類型規(guī)格口徑:由參數(shù)類型確定確定

12、返回值:出料口返回值:出料口產(chǎn)品:數(shù)據(jù)產(chǎn)品:數(shù)據(jù)規(guī)格口徑:由類型確定規(guī)格口徑:由類型確定數(shù)目:數(shù)目:0或或1個(gè)個(gè)加工過程:準(zhǔn)備好材料,加工過程:準(zhǔn)備好材料,找到加工機(jī)器,加入材料,找到加工機(jī)器,加入材料,按下開關(guān),開始加工,加按下開關(guān),開始加工,加工完成,輸出產(chǎn)品。工完成,輸出產(chǎn)品。函數(shù)執(zhí)行:準(zhǔn)備好數(shù)據(jù),函數(shù)執(zhí)行:準(zhǔn)備好數(shù)據(jù),找到函數(shù),給入?yún)?shù),調(diào)找到函數(shù),給入?yún)?shù),調(diào)用,進(jìn)入函數(shù)執(zhí)行,處理用,進(jìn)入函數(shù)執(zhí)行,處理完畢,返回結(jié)果。完畢,返回結(jié)果。例例7-2 輸出輸出5之內(nèi)的數(shù)字金字塔。之內(nèi)的數(shù)字金字塔。/* 輸出數(shù)字金字塔輸出數(shù)字金字塔 */#include int main (void) vo

13、id pyramid (int n);/* 函數(shù)聲明函數(shù)聲明 */pyramid(5);/* 調(diào)用函數(shù),輸出數(shù)字金字塔調(diào)用函數(shù),輸出數(shù)字金字塔 */return 0;void pyramid (int n) /* 函數(shù)定義函數(shù)定義 */int i, j;for (i = 1; i = n; i+)/* 需要輸出的行數(shù)需要輸出的行數(shù) */ for (j = 1; j = n-i; j+) /* 輸出每行左邊的空格輸出每行左邊的空格 */printf( ); for (j = 1; j = i; j+) /* 輸出每行的數(shù)字輸出每行的數(shù)字 */ printf(“%d , i); /* 每個(gè)數(shù)字的前

14、后各有一個(gè)空格每個(gè)數(shù)字的前后各有一個(gè)空格 */ putchar (n); 1223334444555557.1.3 函數(shù)的調(diào)用函數(shù)的調(diào)用n定義一個(gè)函數(shù)后,就可以在程序中調(diào)用這個(gè)定義一個(gè)函數(shù)后,就可以在程序中調(diào)用這個(gè)函數(shù)。函數(shù)。n調(diào)用標(biāo)準(zhǔn)庫函數(shù)時(shí),在程序的最前面用調(diào)用標(biāo)準(zhǔn)庫函數(shù)時(shí),在程序的最前面用#include命令包含相應(yīng)的頭文件。命令包含相應(yīng)的頭文件。n調(diào)用自定義函數(shù)時(shí),程序中必須有與調(diào)用函調(diào)用自定義函數(shù)時(shí),程序中必須有與調(diào)用函數(shù)相對應(yīng)的函數(shù)定義。數(shù)相對應(yīng)的函數(shù)定義。1函數(shù)調(diào)用的形式和過程函數(shù)調(diào)用的形式和過程n使用返回值:使用返回值:volume = cylinder (radius, he

15、ight );printf(“%f n” , cylinder (radius, height );n完成操作:完成操作:pyramid(5);常用于常用于voidvoid類型函數(shù)的調(diào)用類型函數(shù)的調(diào)用常用于返回結(jié)果的函數(shù)的調(diào)用常用于返回結(jié)果的函數(shù)的調(diào)用常量、變量、表達(dá)式常量、變量、表達(dá)式函數(shù)名函數(shù)名(實(shí)參表實(shí)參表)函數(shù)調(diào)用的過程函數(shù)調(diào)用的過程n計(jì)算機(jī)在執(zhí)行程序時(shí),從主函數(shù)計(jì)算機(jī)在執(zhí)行程序時(shí),從主函數(shù)main開始開始執(zhí)行,如果遇到某個(gè)函數(shù)調(diào)用,主函數(shù)被執(zhí)行,如果遇到某個(gè)函數(shù)調(diào)用,主函數(shù)被暫停執(zhí)行,轉(zhuǎn)而執(zhí)行相應(yīng)的函數(shù),該函數(shù)暫停執(zhí)行,轉(zhuǎn)而執(zhí)行相應(yīng)的函數(shù),該函數(shù)執(zhí)行完后,將返回主函數(shù),然后再從原先執(zhí)

16、行完后,將返回主函數(shù),然后再從原先暫停的位置繼續(xù)執(zhí)行。暫停的位置繼續(xù)執(zhí)行。n函數(shù)遇函數(shù)遇return或最后的大括號,返回主函或最后的大括號,返回主函數(shù)數(shù)函數(shù)的調(diào)用、執(zhí)行與返回函數(shù)的調(diào)用、執(zhí)行與返回t調(diào)用者程序執(zhí)行調(diào)用者程序執(zhí)行函數(shù)調(diào)用點(diǎn),函數(shù)調(diào)用點(diǎn),控制權(quán)轉(zhuǎn)移到控制權(quán)轉(zhuǎn)移到被調(diào)用函數(shù),被調(diào)用函數(shù),原程序等待原程序等待函數(shù)執(zhí)行完畢,函數(shù)執(zhí)行完畢,控制返回主程控制返回主程序,原程序繼序,原程序繼續(xù)續(xù)被調(diào)用函數(shù)執(zhí)行被調(diào)用函數(shù)執(zhí)行分析函數(shù)調(diào)用的過程分析函數(shù)調(diào)用的過程#include int main( void ) double height, radius, volume;double cylind

17、er (double r, double h); printf (Enter radius and height: );scanf (%lf%lf, &radius, &height);volume = cylinder (radius, height );printf (Volume = %.3fn, volume);return 0;double cylinder (double r, double h) double result;result =3.1415926 * r * r * h; return result; 調(diào)用調(diào)用函數(shù)函數(shù)實(shí)參實(shí)參形參形參執(zhí)行函數(shù)中的語句執(zhí)

18、行函數(shù)中的語句返回調(diào)用它的地方返回調(diào)用它的地方2參數(shù)傳遞參數(shù)傳遞n函數(shù)函數(shù)定義定義時(shí)的參數(shù)被稱為時(shí)的參數(shù)被稱為形式參數(shù)形式參數(shù)(簡稱(簡稱形參形參)double cylinder (double r, double h);n函數(shù)函數(shù)調(diào)用調(diào)用時(shí)的參數(shù)被稱為時(shí)的參數(shù)被稱為實(shí)際參數(shù)實(shí)際參數(shù)(簡稱(簡稱實(shí)參實(shí)參)volume = cylinder (radius, height);n實(shí)參實(shí)參形參形參在參數(shù)傳遞過程中,實(shí)參把值復(fù)制給形參。在參數(shù)傳遞過程中,實(shí)參把值復(fù)制給形參。形參和實(shí)參形參和實(shí)參一一對應(yīng)一一對應(yīng):數(shù)量一致,類型一致,順序一致:數(shù)量一致,類型一致,順序一致形參形參:變量,用于接受實(shí)參傳遞過

19、來的值:變量,用于接受實(shí)參傳遞過來的值實(shí)參實(shí)參:常量、變量或表達(dá)式:常量、變量或表達(dá)式單向傳遞單向傳遞int main( void ) scanf (%lf%lf, &radius, &height);/假設(shè)輸入假設(shè)輸入5.0 6.0 volume = cylinder (radius, height );double cylinder (double r, double h) double result; result =3.1415926 * r * r * h; return result; 5.06.05.0r6.0h471.24result471.24volume?3

20、函數(shù)結(jié)果返回函數(shù)結(jié)果返回n函數(shù)返回的兩種情況函數(shù)返回的兩種情況完成確定的運(yùn)算,有一個(gè)運(yùn)算結(jié)果返回給主調(diào)完成確定的運(yùn)算,有一個(gè)運(yùn)算結(jié)果返回給主調(diào)函數(shù)。函數(shù)。完成指定工作,沒有確定的運(yùn)算結(jié)果需返回給完成指定工作,沒有確定的運(yùn)算結(jié)果需返回給主調(diào)函數(shù)(函數(shù)類型主調(diào)函數(shù)(函數(shù)類型void)。)。n函數(shù)結(jié)果返回的形式:函數(shù)結(jié)果返回的形式:return 表達(dá)式;表達(dá)式;return (表達(dá)式表達(dá)式);【例例7-3】定義判斷奇偶數(shù)的函數(shù)定義判斷奇偶數(shù)的函數(shù)even (n)定義一個(gè)判斷奇偶數(shù)的函數(shù)定義一個(gè)判斷奇偶數(shù)的函數(shù)even (n),當(dāng),當(dāng)n為偶數(shù)時(shí)返回為偶數(shù)時(shí)返回1,否,否則返回則返回0。/* 判斷奇偶數(shù)

21、的函數(shù)判斷奇偶數(shù)的函數(shù) */int even (int n)/* 函數(shù)首部函數(shù)首部 */if(n%2 = 0) /* 判別奇偶數(shù)判別奇偶數(shù) */return 1;/* 偶數(shù)返回偶數(shù)返回1 */elsereturn 0;/* 奇數(shù)返回奇數(shù)返回0 */如何調(diào)用該如何調(diào)用該函數(shù)?函數(shù)?4函數(shù)原型聲明函數(shù)原型聲明函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)表參數(shù)表) );double cylinder (double r, double h);void pyramid (int n);n函數(shù)必須先定義后調(diào)用,將主調(diào)函數(shù)放在被調(diào)函函數(shù)必須先定義后調(diào)用,將主調(diào)函數(shù)放在被調(diào)函數(shù)的后面,就像變量先定義后使用一樣。

22、數(shù)的后面,就像變量先定義后使用一樣。n如果自定義函數(shù)在主調(diào)函數(shù)的后面,就需要在函如果自定義函數(shù)在主調(diào)函數(shù)的后面,就需要在函數(shù)調(diào)用前,加上函數(shù)原型聲明。數(shù)調(diào)用前,加上函數(shù)原型聲明。n函數(shù)聲明:說明函數(shù)的類型和參數(shù)的情況,以保函數(shù)聲明:說明函數(shù)的類型和參數(shù)的情況,以保證程序編譯時(shí)能判斷對該函數(shù)的調(diào)用是否正確。證程序編譯時(shí)能判斷對該函數(shù)的調(diào)用是否正確。只寫函數(shù)定義中的第只寫函數(shù)定義中的第1 1行(函數(shù)首部),并以分號結(jié)束。行(函數(shù)首部),并以分號結(jié)束。7.2 使用函數(shù)編寫程序使用函數(shù)編寫程序例例7-4 輸入精度輸入精度e,使用格里高利公式求,使用格里高利公式求的的近似值,精確到最后一項(xiàng)的絕對值小于近

23、似值,精確到最后一項(xiàng)的絕對值小于e。要求定義和調(diào)用函數(shù)要求定義和調(diào)用函數(shù) funpi(e) 求求的近似的近似值。值。71513114例例7-4 源程序源程序/* 用格里高利公式計(jì)算用格里高利公式計(jì)算的近似值,的近似值,精度為精度為e */#include #include int main (void) double e, pi; double funpi (double e); printf (Enter e:); scanf (%lf, &e); pi = funpi (e); printf (pi = %fn, pi);return 0;double funpi (double

24、e) int denominator, flag; double item, sum; flag = 1; denominator = 1; item = 1.0; sum = 0; while (fabs (item) = e) item = flag * 1.0 / denominator; sum = sum + item; flag = -flag; denominator = denominator + 2; return sum * 4;Enter e: 0.0001pi = 3.1418例例7-5 判斷素?cái)?shù)的函數(shù)判斷素?cái)?shù)的函數(shù)例例7-5 求求100以內(nèi)的全部素?cái)?shù),每行輸出以內(nèi)的全

25、部素?cái)?shù),每行輸出10個(gè)。素個(gè)。素?cái)?shù)就是只能被數(shù)就是只能被1和自身整除的正整數(shù),和自身整除的正整數(shù),1不是素?cái)?shù),不是素?cái)?shù),2是素?cái)?shù)。是素?cái)?shù)。要求定義和調(diào)用函數(shù)要求定義和調(diào)用函數(shù)prime (m)判斷判斷m是否為素?cái)?shù),是否為素?cái)?shù),當(dāng)當(dāng)m為素?cái)?shù)時(shí)返回為素?cái)?shù)時(shí)返回1,否則返回,否則返回0。n算法描述:算法描述:對對2100之間的每個(gè)數(shù)進(jìn)行判斷,若之間的每個(gè)數(shù)進(jìn)行判斷,若是素?cái)?shù),則輸出該數(shù)。是素?cái)?shù),則輸出該數(shù)。for(m = 2; m = 100; m+) if (m是素?cái)?shù)是素?cái)?shù)) printf(%d , m); prime(m) != 0例例7-5 源程序源程序#include #include in

26、t main(void) int count, m; int prime (int m); count = 0; for(m = 2; m = 100; m+) if ( prime(m) != 0 ) printf(%6d, m ); count+; if (count %10 = 0) printf (n); printf (n);int prime (int m) int i, n; if ( m = 1 ) return 0; n = sqrt (m); for( i = 2; i = n; i+) if (m % i = 0) return 0; return 1; 7.3 變量與函

27、數(shù)變量與函數(shù)7.3.1 局部變量和全局變量局部變量和全局變量7.3.2 變量生命周期和靜態(tài)局部變量變量生命周期和靜態(tài)局部變量7.3.1 局部變量和全局變量局部變量和全局變量n局部變量局部變量在函數(shù)內(nèi)定義的變量(包括形參)在函數(shù)內(nèi)定義的變量(包括形參)作用范圍:作用范圍:本函數(shù)內(nèi)部本函數(shù)內(nèi)部定義在復(fù)合語句內(nèi)的變量定義在復(fù)合語句內(nèi)的變量作用范圍:作用范圍:復(fù)合語句內(nèi)部復(fù)合語句內(nèi)部n全局變量全局變量在函數(shù)以外定義的變量,不從屬于任一函數(shù)。在函數(shù)以外定義的變量,不從屬于任一函數(shù)。作用范圍:作用范圍:從定義處到源文件結(jié)束從定義處到源文件結(jié)束(包括各函數(shù))(包括各函數(shù))例例7-6 在復(fù)合語句中定義局部變量

28、。在復(fù)合語句中定義局部變量。#include int main (void) int a; a = 1; /* 復(fù)合語句開始復(fù)合語句開始 */ int b = 2; b = a + b; a = a + b; /* 復(fù)合語句結(jié)束復(fù)合語句結(jié)束 */ printf (%d , a ); return 0;b:b:小范圍內(nèi)的臨時(shí)變量小范圍內(nèi)的臨時(shí)變量 4例例7-7 全局變量定義全局變量定義#include stdio.hint x; /* 定義全局變量定義全局變量x */int f( ) int x = 4; /* x為局部變量為局部變量 */ return x;int main(void) int

29、 a = 1; x = a; /* 對全局變量對全局變量 x 賦值賦值 */ a = f( ); /* a的值為的值為4 */ int b = 2; b = a + b; /* b的值為的值為6 */ x = x + b; /* 全局變量運(yùn)算全局變量運(yùn)算 */ printf(%d %d , a, x); return 0;4, 7若局部變量與全局變量若局部變量與全局變量同名,局部變量優(yōu)先同名,局部變量優(yōu)先變量作用范圍示例變量作用范圍示例int x=1;void main( ) int a=2; . int b=3; . f( ); .int t=4 ;void f( ) int x=5, b=

30、6; .int a=7; x=? a=? b=?b=? x=5 b=6 t=4 a沒定義沒定義 x=? b=? t=? a=?n自動變量(自動變量(auto): 普通的局部變量普通的局部變量int x, y; auto int x, y;char c1; auto char c1;函數(shù)調(diào)用時(shí),定義變量,分配存儲單元函數(shù)調(diào)用時(shí),定義變量,分配存儲單元。函數(shù)調(diào)用結(jié)束,收回存儲單元函數(shù)調(diào)用結(jié)束,收回存儲單元。n全局變量:從全局變量:從程序程序執(zhí)行開始,到程序的結(jié)束執(zhí)行開始,到程序的結(jié)束,存儲單存儲單元始終保持元始終保持。n變量生命周期變量生命周期變量從定義開始分配存儲單元,到運(yùn)行結(jié)束存儲單元被回收變量從定義開始分配存儲單元,到運(yùn)行結(jié)束存儲單元被回收的整個(gè)過程。的整個(gè)過程。7.3.2 變量生命周期和靜態(tài)局部變量變量生命周期和靜態(tài)局部變量n存儲類型:存儲類型:動態(tài)存儲:自動變量動態(tài)存儲:自動變量靜態(tài)存儲:全局變量、靜態(tài)存儲:全局變量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論