模塊化程序設(shè)計(jì)_第1頁
模塊化程序設(shè)計(jì)_第2頁
模塊化程序設(shè)計(jì)_第3頁
模塊化程序設(shè)計(jì)_第4頁
模塊化程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六章1*第第6章章 模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)1. 概述:模塊概述:模塊,函數(shù)函數(shù),算法算法2. 函數(shù)的定義與說明函數(shù)的定義與說明(重點(diǎn)重點(diǎn))3. 函數(shù)的調(diào)用函數(shù)的調(diào)用(重點(diǎn)重點(diǎn),難點(diǎn)遞歸調(diào)用難點(diǎn)遞歸調(diào)用)4. 變量的作用域變量的作用域(重點(diǎn)重點(diǎn))5. 變量的存儲屬性變量的存儲屬性(重點(diǎn)重點(diǎn),難點(diǎn)難點(diǎn))第六章2*6.1 概述概述6.1.1 模塊與函數(shù)模塊與函數(shù)1.功能模塊功能模塊求解較小問題的算法和程序稱作求解較小問題的算法和程序稱作“功能模功能模塊塊”, 各功能模塊可以先單獨(dú)設(shè)計(jì),然后將求各功能模塊可以先單獨(dú)設(shè)計(jì),然后將求解所有子問題的模塊組合成求解原問題的程解所有子問題的模塊組合成求解

2、原問題的程序。序。 “自頂向下自頂向下”的模塊化程序設(shè)計(jì)方法:的模塊化程序設(shè)計(jì)方法:將一個(gè)大問題分解成多個(gè)解決小問題的模塊將一個(gè)大問題分解成多個(gè)解決小問題的模塊的設(shè)計(jì)思想。的設(shè)計(jì)思想。第六章3*2.由功能模塊組成程序的結(jié)構(gòu)圖由功能模塊組成程序的結(jié)構(gòu)圖:主控模塊主控模塊模塊模塊1_1模塊模塊1_n模塊模塊2_1模塊模塊2_n模塊模塊n_1模塊模塊n_n模塊模塊1模塊模塊2模塊模塊n3. 函數(shù)函數(shù):完成相對獨(dú)立功能的程序完成相對獨(dú)立功能的程序第六章4*【例【例6- -1】輸入年月日,計(jì)算出該日為該年的第幾天。輸入年月日,計(jì)算出該日為該年的第幾天。 主控模塊主控模塊判斷閏年判斷閏年求某月的天數(shù)求某月

3、的天數(shù)輸輸 出出輸輸 入入求總天數(shù)求總天數(shù)圖圖6-2 6-2 程序結(jié)構(gòu)圖程序結(jié)構(gòu)圖第六章5*程序?qū)崿F(xiàn)程序?qū)崿F(xiàn):(1)判斷閏年。)判斷閏年。int leap(int year)int lp; lp=(year%4=0&year%100!=0|year%400=0)?1:0; return lp;第六章6*(2 2)求某月的天數(shù)。)求某月的天數(shù)。int month_days(int year,int month)int month_days(int year,int month) int ds,d; int ds,d; switch(month) switch(month) case 1:

4、 case 1: case 3: case 3: case 5: case 5: case 7: case 7: case 8: case 8: case 10: case 10: case 12:d=31;break; case 12:d=31;break; case 2:d=leap(year)?29:28;break; case 2:d=leap(year)?29:28;break; default:d=30; default:d=30; return d; return d; 第六章7*(3 3)求天數(shù)和。)求天數(shù)和。int days(int year,int month,int da

5、y)int i,ds=0; for (i=1;imonth;i+) ds=ds+month_days(year,i); ds=ds+day; return ds; 第六章8*4) 在主函數(shù)中分別調(diào)用三個(gè)函數(shù)。在主函數(shù)中分別調(diào)用三個(gè)函數(shù)。void main() int year,month,day,t_day; printf(Input year-month-day:n); scanf(%d-%d-%d,&year,&month,&day);t_day=days(year,month,day);printf(%d-%d-%d is %dth day of the year

6、!n,year, month,day,t_day); 注意注意:在完整的程序中在完整的程序中,前三個(gè)函數(shù)應(yīng)放在前三個(gè)函數(shù)應(yīng)放在main( )函數(shù)之前。函數(shù)之前。第六章9*6.1.2 模塊設(shè)計(jì)三個(gè)原則模塊設(shè)計(jì)三個(gè)原則 模塊獨(dú)立。模塊獨(dú)立。功能獨(dú)立的子功能功能獨(dú)立的子功能模塊之間的關(guān)系簡單模塊之間的關(guān)系簡單使用獨(dú)立變量使用獨(dú)立變量 模塊規(guī)模適當(dāng)模塊規(guī)模適當(dāng) 分解模塊要注意層次分解模塊要注意層次對問題抽象化對問題抽象化設(shè)計(jì)時(shí)細(xì)化設(shè)計(jì)時(shí)細(xì)化第六章10*6.2 函數(shù)定義與使用函數(shù)定義與使用一、標(biāo)準(zhǔn)庫函數(shù)一、標(biāo)準(zhǔn)庫函數(shù)定義在不同的頭文件中定義在不同的頭文件中用戶使用時(shí),必須用用戶使用時(shí),必須用#inclu

7、de“頭文件頭文件”把相應(yīng)的把相應(yīng)的頭文件包含到程序中來。頭文件包含到程序中來。#include /* 包含包含math.h頭文件頭文件 */#include /* 包含包含 stdio.h 頭文件頭文件 */main( ) double a, b; scanf (“%f “,&a); /*調(diào)用輸入函數(shù),輸入變量調(diào)用輸入函數(shù),輸入變量a的值的值*/ b = sin (a); /*調(diào)用調(diào)用sin函數(shù),求函數(shù),求sin (a) 的值的值*/ printf( “%6.4f”, b); /*調(diào)用輸出函數(shù),輸出變量調(diào)用輸出函數(shù),輸出變量b的值的值*/第六章11*二、用戶自定義函數(shù)二、用戶自定義函

8、數(shù)函數(shù)類型函數(shù)類型 無參函數(shù)無參函數(shù)函數(shù)的定義無參數(shù)說明函數(shù)的定義無參數(shù)說明 有參函數(shù)有參函數(shù) 定義的參數(shù)有一個(gè)或一個(gè)以上的參數(shù)定義的參數(shù)有一個(gè)或一個(gè)以上的參數(shù) 空函數(shù)空函數(shù)當(dāng)定義的函數(shù)既無參數(shù)也無執(zhí)行語句。當(dāng)定義的函數(shù)既無參數(shù)也無執(zhí)行語句??蘸瘮?shù)被調(diào)用時(shí),什么也不做立即返回其空函數(shù)被調(diào)用時(shí),什么也不做立即返回其調(diào)用函數(shù)。調(diào)用函數(shù)。 第六章12*2. 函數(shù)定義函數(shù)定義方式方式1 函數(shù)返回值類型名函數(shù)返回值類型名 函數(shù)名函數(shù)名(參數(shù)列表參數(shù)列表)參數(shù)類型說明參數(shù)類型說明 局部變量說明局部變量說明; 語句序列語句序列; 方式方式2 函數(shù)返回值類型名函數(shù)返回值類型名 函數(shù)名函數(shù)名(參數(shù)類型說明及參數(shù)

9、列表參數(shù)類型說明及參數(shù)列表) 局部變量說明局部變量說明; 語句序列語句序列; 如如: int max(a,b) int a,b;如如: int max(int a,int b) 第六章13*【例【例6-3】定義符號函數(shù)】定義符號函數(shù)sign。 int sign(x)/*函數(shù)返回值類型未說明,默認(rèn)為函數(shù)返回值類型未說明,默認(rèn)為int,建議給出函數(shù)類型說明,建議給出函數(shù)類型說明*/int x;/*形式參數(shù)說明形式參數(shù)說明*/int y;/*函數(shù)體局部變量函數(shù)體局部變量*/ y=x0?1:(x=0?0:-1); return y;/*返回函數(shù)值返回函數(shù)值*/ 注意注意:C語言函數(shù)分為兩大部分語言函數(shù)

10、分為兩大部分: 函數(shù)的說明部分函數(shù)的說明部分函數(shù)體部分。函數(shù)體部分。第六章14*函數(shù)各部分作用函數(shù)各部分作用1)函數(shù)的說明部分函數(shù)的說明部分 函數(shù)說明部分說明函數(shù)的類型函數(shù)說明部分說明函數(shù)的類型, 函數(shù)名函數(shù)名, 參數(shù)表參數(shù)表及參數(shù)類型。及參數(shù)類型。(1)函數(shù)的類型說明函數(shù)的類型說明函數(shù)的類型即函數(shù)的返回值類型。若函數(shù)不提供返函數(shù)的類型即函數(shù)的返回值類型。若函數(shù)不提供返回值,則可定義其類型為回值,則可定義其類型為: void。 例如例如: void putdata(int a)(2) 函數(shù)名函數(shù)名 函數(shù)名又稱函數(shù)標(biāo)識符。命名遵循函數(shù)名又稱函數(shù)標(biāo)識符。命名遵循C語語言標(biāo)識符語語言標(biāo)識符的規(guī)定;函

11、數(shù)名要反映函數(shù)完成的功能。的規(guī)定;函數(shù)名要反映函數(shù)完成的功能。第六章15*(3)參數(shù)表參數(shù)表參數(shù)表寫在函數(shù)名后的參數(shù)表寫在函數(shù)名后的( )內(nèi),由一個(gè)或多個(gè)變內(nèi),由一個(gè)或多個(gè)變量標(biāo)識符及類型標(biāo)識符組成。量標(biāo)識符及類型標(biāo)識符組成。參數(shù)表中的變量稱為形式參數(shù)參數(shù)表中的變量稱為形式參數(shù), 簡稱形參。簡稱形參。若函數(shù)沒有形參,則稱為無參函數(shù),其后若函數(shù)沒有形參,則稱為無參函數(shù),其后“( )”不能省略。不能省略。參數(shù)必須指定類型。形參的類型說明有兩種:參數(shù)必須指定類型。形參的類型說明有兩種:方法方法1: int max(a,b) int a,b;方法方法2: int max(int a, int b)省略

12、函數(shù)類型名時(shí),省略函數(shù)類型名時(shí),C語言默認(rèn)其為語言默認(rèn)其為int型。型。第六章16*2)函數(shù)體函數(shù)體函數(shù)體包括變量定義和執(zhí)行語句序列。函數(shù)所函數(shù)體包括變量定義和執(zhí)行語句序列。函數(shù)所完成的工作由函數(shù)體中一段程序?qū)崿F(xiàn)。完成的工作由函數(shù)體中一段程序?qū)崿F(xiàn)。函數(shù)的返回值用返回語句函數(shù)的返回值用返回語句return返回,形式返回,形式: return(表達(dá)式表達(dá)式);或或 return 表達(dá)式;表達(dá)式;如果函數(shù)的類型與如果函數(shù)的類型與return語句的表達(dá)式的類語句的表達(dá)式的類型不一致時(shí)型不一致時(shí), 則以函數(shù)的類型為準(zhǔn)。返回時(shí)則以函數(shù)的類型為準(zhǔn)。返回時(shí)自動進(jìn)行數(shù)據(jù)轉(zhuǎn)換。自動進(jìn)行數(shù)據(jù)轉(zhuǎn)換。(見下頁例題見下頁

13、例題)第六章17*例例6.3 定義函數(shù)定義函數(shù)power(x,n), 求求x的的n次方。次方。函數(shù)定義如下函數(shù)定義如下:float power( float x, int n) int i; float t=1; for(i=1;ib)?a:b; y=yc?y:c; printf(max=%dn,y); void main() int x,y,z,m; scanf(%d,%d,%d,&x,&y,&z); max(x,y,z); /*采用函數(shù)語句形式調(diào)用函數(shù)采用函數(shù)語句形式調(diào)用函數(shù)max*/第六章20*函數(shù)調(diào)用形式函數(shù)調(diào)用形式int max(int a,int b) in

14、t y; y=(ab)?a:b; return y;void main() int x,y,z,m; scanf(%d,%d,%d,&x,&y,&z); m=max(x,y); m=max(m,z); printf(“max=%dn”,m);/*表達(dá)式調(diào)用形式表達(dá)式調(diào)用形式 */ m=max(x,y); printf(max=%dn,max(m,z); /*函數(shù)參數(shù)調(diào)用形式函數(shù)參數(shù)調(diào)用形式*/第六章21*2.函數(shù)聲明函數(shù)聲明 函數(shù)定義在函數(shù)定義在main()之后,需要進(jìn)行函數(shù)說明。之后,需要進(jìn)行函數(shù)說明。類型名類型名 函數(shù)名函數(shù)名(類型類型1 變量變量1,類型類型2 變

15、量變量2,類型類型n 變量變量n); 說明:說明:函數(shù)聲明應(yīng)與該函數(shù)定義的函數(shù)類型與名稱、形參函數(shù)聲明應(yīng)與該函數(shù)定義的函數(shù)類型與名稱、形參的個(gè)數(shù)、類型、次序相一致。的個(gè)數(shù)、類型、次序相一致。函數(shù)聲明中的形參名可省略,其形式為函數(shù)聲明中的形參名可省略,其形式為:類型名類型名 函數(shù)名(類型函數(shù)名(類型1,類型,類型2,類型,類型n);); 類型名類型名 函數(shù)名函數(shù)名();當(dāng)函數(shù)定義在主調(diào)函數(shù)之前,即先定義當(dāng)函數(shù)定義在主調(diào)函數(shù)之前,即先定義, 后調(diào)用。后調(diào)用。則調(diào)用時(shí)函數(shù)聲明可以省略。則調(diào)用時(shí)函數(shù)聲明可以省略。第六章22*例例6.4 編寫計(jì)算編寫計(jì)算x的的n次乘方的程序。次乘方的程序。 #inclu

16、de stdio.h” main( ) float x, y; int n; float power (float x, int n); scanf(%f,%d, &x, &n); y = power(x, n); printf(“%8.2f”,y); float power( float x, int n) int i; float t=1; for(i=1; iy) t = x; else t = y; return t; 第六章25*1) 形參形參y之間值的傳遞如圖之間值的傳遞如圖4.7所示意所示意。 a x b y2) 關(guān)于形式參數(shù)和實(shí)際參數(shù)說明如下關(guān)于形式參數(shù)和實(shí)際參

17、數(shù)說明如下:形式參數(shù)在函數(shù)被調(diào)用時(shí)才被分配內(nèi)存。當(dāng)函數(shù)執(zhí)行完形式參數(shù)在函數(shù)被調(diào)用時(shí)才被分配內(nèi)存。當(dāng)函數(shù)執(zhí)行完畢返回時(shí)畢返回時(shí), 形式參數(shù)占用的內(nèi)存空間便被釋放。形式參數(shù)占用的內(nèi)存空間便被釋放。實(shí)參可以是變量、常量和表達(dá)式。實(shí)參可以是變量、常量和表達(dá)式。如如: y = power(x,4); y = power(x, i*2); 但實(shí)參必須有確定的值。但實(shí)參必須有確定的值。3) 形參和實(shí)參的類型必須相容形參和實(shí)參的類型必須相容。4) 形參和實(shí)參之間的關(guān)系是形參和實(shí)參之間的關(guān)系是: 單向的值的傳遞單向的值的傳遞101055第六章26*6.3.3 函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用 調(diào)用一個(gè)函數(shù)的過程中又

18、調(diào)用了另一個(gè)函數(shù),這種調(diào)用稱為調(diào)用一個(gè)函數(shù)的過程中又調(diào)用了另一個(gè)函數(shù),這種調(diào)用稱為函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用。函數(shù)函數(shù)1 函數(shù)函數(shù)2 函數(shù)函數(shù)3 . . 調(diào)用函數(shù)調(diào)用函數(shù)2 調(diào)用函數(shù)調(diào)用函數(shù)3 . 第六章27*【例【例6-9】 求方程求方程ax2+bx+c=0(a 0)的根。的根。#include #include void main() float a,b,c,x1,x2; int dict(float,float,float); float root(float,float,float,int); printf(Input a,b,c:); scanf(%f,%f,%f,&a,&

19、amp;b,&c); if (dict(a,b,c) x1=root(a,b,c,1); /*調(diào)用函數(shù)調(diào)用函數(shù)root*/ x2=root(a,b,c,0); printf(實(shí)根實(shí)根x1=%f,x2=%fn,x1,x2); else printf(無實(shí)根無實(shí)根!n); 第六章28*dict()和和root()int dict(float a,float b,float c)int f;if (b*b-4*a*c=0) f=1; else f=0return f; float root(float a,float b,float c,int flag)float d,x; d=dict(

20、a,b,c); /*調(diào)用函數(shù)調(diào)用函數(shù) dict*/ if (d) x=flag?(-b+sqrt(d)/(2*a):(-b-sqrt(d)/(2*a); return x; 第六章29*嵌套過程嵌套過程void main( ) .x1=root(a,b,c,1)x2=root(a,b,c,0).root(a,b,c,flag ). .d=dict(a,b,c). return x;dict(a,b,c ).return f;圖圖6-3 嵌套調(diào)用過程嵌套調(diào)用過程 調(diào)用調(diào)用 返回返回 返回返回 調(diào)用調(diào)用第六章30*6.3.4 遞歸調(diào)用遞歸調(diào)用(重點(diǎn)重點(diǎn)) 函數(shù)調(diào)用函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。遞函

21、數(shù)調(diào)用函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。遞歸調(diào)用形式如下:歸調(diào)用形式如下:1) 直接遞歸直接遞歸 void a( ) . a ( ); . 2) 間接遞歸間接遞歸 void a( ) . b ( ); . void b( ) . a ( ); . 第六章31*用遞歸算法計(jì)算用遞歸算法計(jì)算n! 討論:討論:采用遞歸的方法計(jì)算。采用遞歸的方法計(jì)算。n!的遞歸定義形式的的遞歸定義形式的: 編程編程:if (初始條件初始條件)表達(dá)式表達(dá)式; else 遞推表達(dá)式遞推表達(dá)式; 1 n=0;n= n* (n-1)! n0第六章32*例程序:例程序:#include long fac(unsigned n) l

22、ong f ; if (n=0) f=1; /*遞歸結(jié)束條件遞歸結(jié)束條件*/ else f=n*fac(n-1); return f;main( ) long y; int n; scanf(“%d”, &n); y = fac(n); printf(“%d!=%ldn”, n, y);第六章33*分析分析:當(dāng)程序輸入當(dāng)程序輸入3時(shí)時(shí)y=fac(3) 3*fac(2) 2*fac(1) 1*fac(0) 1第六章34*例例6.11 漢諾塔游戲漢諾塔游戲 漢諾塔漢諾塔(Tower of Hanoi)游戲。游戲。 底座上有三根底座上有三根針,第一根針上放著從大到小針,第一根針上放著從大到小

23、64個(gè)金片。游戲個(gè)金片。游戲的目標(biāo)是把所有金片從第一根針通過第二根針的目標(biāo)是把所有金片從第一根針通過第二根針移到第三根針上。移動過程中大的金片不能壓移到第三根針上。移動過程中大的金片不能壓在小的金片上。在小的金片上。 把把n(n1)個(gè)金片從第一根針個(gè)金片從第一根針a上移到第三根針上移到第三根針c的問題分解成如下步驟的問題分解成如下步驟:(1) 將將n-1個(gè)金片從個(gè)金片從a經(jīng)過經(jīng)過c 移動到移動到b。(2) 將第將第n個(gè)金片移動到個(gè)金片移動到c。(3) 再將再將n-1個(gè)盤子從個(gè)盤子從b經(jīng)過經(jīng)過a移動到移動到c。第六章35*void hanoi(int n, int a, int b, int c

24、) if (n=0) return; /* 0個(gè)金片不處理 */ if (n=1) printf(%d -%dn,a,c); /* n=1時(shí), 直接將金片從a移動到c */ else hanoi(n-1,a,c,b); /* 先將n-1個(gè)金片從a經(jīng)過c 移動到b */ printf(%d -%dn,a,c); /* 將第n個(gè)金片從a移動到c */ hanoi(n-1,b,a,c); /* 再將n-1個(gè)金片從b經(jīng)過a移動到c */ 主函數(shù)如下: #include main( ) int n; printf(Input n:); scanf(%d,&n); hanoi(n,1,2,3);/

25、*n個(gè)金片從第一根針經(jīng)過第二根針移動到第三根針上*/ 第六章36*6.4 變量的作用域及存儲特性變量的作用域及存儲特性 例例void f1( ) int t=2; a *= t; b /= t; main() int a, b; printf(“ Enter a,b:”); scanf(“%d,%d”, &a, &b); f1( ); /* 調(diào)用函數(shù)調(diào)用函數(shù)f1( ) */ printf (“a=%d,b=%d”, a, b); 編譯程序會提示出錯(cuò)編譯程序會提示出錯(cuò): Undefined symbol a 和和 Undefined symbol b 。為什么。為什么?第六章37

26、*全局變量(外部變量)局部變量(內(nèi)部變量)定義位置 函數(shù)體外函數(shù)體內(nèi)作用域從定義處到文件結(jié)束從定義處到本函數(shù)結(jié)束舉例所有在函數(shù)體外定義的變量(1) 所有在函數(shù)體內(nèi)定義的變量(2)形式參數(shù)注意與局部變量同名的處理不同函數(shù)中同名局部變量互不干擾6.4.1 變量的作用域變量的作用域1.變量按作用域:分為全局變量和局部變量2.區(qū)別:第六章38*例例程序程序#include int a,b; /*a,b為全局變量為全局變量*/void f1( ) int t1,t2; t1 = a * 2; t2 = b * 3; b = 100; printf (“t1=%d,t2=%dn”, t1, t2); ma

27、in() a=2; b=4; f1( ); printf (“a=%d,b=%d”, a, b); 程序輸出結(jié)果為程序輸出結(jié)果為: t1=4,t2=12 a=2,b=100 第六章39*將程序改為:將程序改為:#include int a=2,b=4; /*a,b為全局變量為全局變量*/void f1( ) int t1,t2; t1 = a * 2; t2 = b * 3; b = 100; printf (“t1=%d,t2=%dn”, t1, t2); main() int b=4; f1( ); printf (“a=%d,b=%d”, a, b); 程序輸出結(jié)果為程序輸出結(jié)果為: t

28、1=4,t2=12 a=2, b=4 結(jié)論:全局變量與局部結(jié)論:全局變量與局部變量同名時(shí),局部變量變量同名時(shí),局部變量的作用域屏蔽全局變量的作用域屏蔽全局變量第六章40*6.4.2 變量的存儲特性變量的存儲特性1.變量按存在時(shí)間分變量按存在時(shí)間分:靜態(tài)變量,動態(tài)變量靜態(tài)存儲變量:生存期為程序執(zhí)行的整個(gè)過程,在靜態(tài)存儲變量:生存期為程序執(zhí)行的整個(gè)過程,在該過程中占有固定的存儲空間,也稱永久存儲。該過程中占有固定的存儲空間,也稱永久存儲。動態(tài)存儲變量:只生存在某一段時(shí)間內(nèi)。動態(tài)存儲變量:只生存在某一段時(shí)間內(nèi)。例如:例如:函數(shù)的形參、函數(shù)體或分程序函數(shù)的形參、函數(shù)體或分程序中定義的變量,中定義的變量

29、,只有當(dāng)程序進(jìn)入該函數(shù)或分程序時(shí)才分配存儲空間,只有當(dāng)程序進(jìn)入該函數(shù)或分程序時(shí)才分配存儲空間,函數(shù)函數(shù)/分程序執(zhí)行完后,變量的存儲空間又被釋放。分程序執(zhí)行完后,變量的存儲空間又被釋放。2. 變量屬性:數(shù)據(jù)類型,存儲特性變量屬性:數(shù)據(jù)類型,存儲特性完整的變量定義完整的變量定義: 存儲特性存儲特性 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名;第六章41*3.變量的存儲特性變量的存儲特性1) auto型型有形式參數(shù)、函數(shù)內(nèi)變量、分程序變量。有形式參數(shù)、函數(shù)內(nèi)變量、分程序變量。進(jìn)入程序自動分配內(nèi)存,不長期占用內(nèi)存。進(jìn)入程序自動分配內(nèi)存,不長期占用內(nèi)存。2) static 型型 局部靜態(tài)變量局部靜態(tài)變量 全局靜態(tài)變量全局靜態(tài)變量長期占用內(nèi)存長期占用內(nèi)存自動型自動型 auto靜

溫馨提示

  • 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

提交評論