語言-chap函數(shù)基本知識(shí)_第1頁
語言-chap函數(shù)基本知識(shí)_第2頁
語言-chap函數(shù)基本知識(shí)_第3頁
語言-chap函數(shù)基本知識(shí)_第4頁
語言-chap函數(shù)基本知識(shí)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2015.07.21高級(jí)語言程序設(shè)計(jì)南京郵電大學(xué)先進(jìn)技術(shù)研究院計(jì)算機(jī)軟件教學(xué)中心鄧松2015.07.21高級(jí)語言程序設(shè)計(jì)第05章函數(shù)的基本知識(shí)內(nèi)容提要函數(shù)的定義、調(diào)用及原型聲明

函數(shù)調(diào)用時(shí)實(shí)參向形參傳遞參數(shù)的方式不同存儲(chǔ)類別變量的不同生命期與作用域簡單的遞歸函數(shù)的定義及調(diào)用,理解其調(diào)用過程

35.1函數(shù)與模塊化程序設(shè)計(jì)函數(shù)(function):是組成C程序的基本單位

函數(shù)分兩類為什么自定義函數(shù)?--模塊化程序設(shè)計(jì)的需要模塊化程序設(shè)計(jì)方法:自頂向下、逐步分解、分而治之,即將一個(gè)大的程序按功能分解成為一些功能單一、結(jié)構(gòu)清晰、接口簡單、容易理解的功能模塊。函數(shù):模塊化程序設(shè)計(jì)的最小單位、基石。4庫函數(shù):用戶自定義函數(shù):系統(tǒng)提供,需包含相應(yīng)文件按需自行定義

例:一個(gè)簡單的學(xué)生成績檔案管理系統(tǒng)問題描述:完成一個(gè)綜合的學(xué)生成績檔案管理系統(tǒng),要求能夠管理若干個(gè)學(xué)生的幾門課的成績,需要實(shí)現(xiàn)以下功能:讀入學(xué)生信息、以數(shù)據(jù)文件的形式存儲(chǔ)學(xué)生信息;可以增加、修改、刪除學(xué)生的信息;按學(xué)號(hào)、姓名、名次查詢學(xué)生信息;可以依學(xué)號(hào)順序?yàn)g覽學(xué)生信息;可以統(tǒng)計(jì)每門課的最高分、最低分以及平均分;計(jì)算每個(gè)學(xué)生的總分并排名分成5大模塊,各大模塊又可以分幾個(gè)小模塊:顯示基本信息基本信息管理學(xué)生成績管理考試成績統(tǒng)計(jì)根據(jù)條件查詢按學(xué)號(hào)查按姓名查按名次查5.1函數(shù)與模塊化程序設(shè)計(jì)函數(shù)定義的格式為:函數(shù)返回值類型函數(shù)名([形式參數(shù)表])

{ 一組語句}函數(shù)首部(也稱函數(shù)頭)需要提供3個(gè)方面的信息:函數(shù)返回值類型:函數(shù)最后需要傳出的結(jié)果的類型函數(shù)名:一個(gè)合法的用戶自定義標(biāo)識(shí)符,見名知義形式參數(shù)表:列出所需要提供的參數(shù)及對應(yīng)類型(不共享),代表使用這個(gè)函數(shù)必須提供的初始數(shù)據(jù)65.2

函數(shù)的定義函數(shù)首部,也稱函數(shù)頭函數(shù)體,可以為空每個(gè)形參之前必須指定形參類型;各形參之間以逗號(hào)分隔;可能無形參但括號(hào)不省做什么怎么做函數(shù)定義的首部舉例:75.2

函數(shù)的定義函數(shù)的功能描述函數(shù)定義的首部求兩個(gè)整數(shù)之間的較大值intFindMax(intx,inty)求兩個(gè)實(shí)型數(shù)的和doubleAdd(doublea,doubleb)判斷一個(gè)整數(shù)是否為質(zhì)數(shù)intJudgePrime(intn)求出一個(gè)字符的ASCII碼值返回intCalcuAscii(charc)求一個(gè)整數(shù)的階乘doubleFact(intn)畫出一條由30個(gè)減號(hào)組成的橫線voidDrawLine()畫出一條由n個(gè)減號(hào)組成的橫線voidDrawLine(intn)畫出一條由n個(gè)指定字符組成的橫線voidDrawLine(intn,charc)求兩個(gè)整數(shù)的最大公約數(shù)intGcd(inta,intb)統(tǒng)計(jì)出m到n之間的水仙花數(shù)intCountNarcissus(intm,intn)求出m到n之間所有的同時(shí)能被5和7整除的奇數(shù)和intSumOdd(intm,intn)函數(shù)體就是函數(shù)代碼實(shí)現(xiàn)部分,其基本形式為:{ /*說明性語句*//*執(zhí)行語句*/}若返回值類型不是void類型,則函數(shù)體內(nèi)一定要配合使用“return表達(dá)式;”語句;若返回值類型為void,則在需要返回的點(diǎn)使用“return;”語句,建議編程者采用這種方式,也可以沒有return語句,則執(zhí)行到函數(shù)體的右大括號(hào)結(jié)束。85.2

函數(shù)的定義有可能函數(shù)體內(nèi)無語句,空的函數(shù)體便于以后擴(kuò)充函數(shù)體內(nèi)不可以出現(xiàn)其他函數(shù)的定義,即函數(shù)不能嵌套定義例5.2

定義一個(gè)函數(shù)intJudgePrime(intn),實(shí)現(xiàn)判斷任意一個(gè)正整數(shù)是否是質(zhì)數(shù)。95.2

函數(shù)的定義/*函數(shù)功能:判斷一個(gè)正整數(shù)是否為質(zhì)數(shù)函數(shù)參數(shù):一個(gè)整型形式參數(shù)函數(shù)返回值:int型,用值1表示n是質(zhì)數(shù),0表示不是質(zhì)數(shù)*/intJudgePrime(intn){

inti,k;intjudge=1;if(n==1)

judge=0;

k=(int)sqrt(n);

for(i=2;judge&&i<=k;i++)if(n%i==0)

judge=0;

returnjudge;}?思考:當(dāng)形式參數(shù)的值n獲得值2或3時(shí),能否得到正確的判斷結(jié)果?例5.3定義一個(gè)函數(shù)DrawLine,實(shí)現(xiàn)畫出一條由30個(gè)減號(hào)組成的橫線105.2

函數(shù)的定義/*函數(shù)功能:畫一條由30個(gè)減號(hào)組成的橫線函數(shù)參數(shù):無函數(shù)返回值:無*/voidDrawLine(){inti; for(i=1;i<=30;i++)printf("-"); printf("\n");return;} 現(xiàn)場練習(xí)改寫1:函數(shù)voidDrawLine(intn),畫出n個(gè)“-”號(hào)組成的直線

現(xiàn)場練習(xí)改寫2:函數(shù)voidDrawLine(intn

,charc),畫出n個(gè)由字符c組成的直線

調(diào)用一個(gè)已定義函數(shù)的基本形式為:函數(shù)調(diào)用JudgePrime函數(shù)求出所有的3位質(zhì)數(shù)并按每行五個(gè)的形式輸出名([實(shí)際參數(shù)表]);

例5.4

從鍵盤上讀入一個(gè)整數(shù)m,如果m小于等于0,則給出相應(yīng)的提示信息;如果m大于0,則調(diào)用JudgePrime函數(shù)判斷它是不是一個(gè)質(zhì)數(shù),將結(jié)論在屏幕顯示。115.3

函數(shù)的調(diào)用……if(JudgePrime(m)) printf("%disaprime!\n",m); else

printf("%disnotaprime!\n",m); …… 完整的代碼在VC++下演示,此處只給出調(diào)用語句m為實(shí)參,是主函數(shù)中讀入的變量,傳值給形參n?深入思考:調(diào)用JudgePrime函數(shù)求出所有的3位質(zhì)數(shù)并按每行五個(gè)的形式輸出

例5.5

調(diào)用DrawLine函數(shù)實(shí)現(xiàn)劃線功能。125.3

函數(shù)的調(diào)用

#include<stdio.h>/*此處省略例5.3中函數(shù)定義的代碼*/ intmain(){ DrawLine();/*第一次調(diào)用DrawLine函數(shù)*/ printf("Cisabeautifullanguage!\n"); DrawLine();/*第二次調(diào)用DrawLine函數(shù)*/ return0;}函數(shù)DrawLine無形式參數(shù)

,因此不提供實(shí)參對于返回值類型為void型的函數(shù),調(diào)用后直接作為函數(shù)調(diào)用語句使用函數(shù)調(diào)用的完整過程135.3

函數(shù)的調(diào)用(1)轉(zhuǎn)向:調(diào)用函數(shù)時(shí),流程從主調(diào)函數(shù)轉(zhuǎn)向被調(diào)用函數(shù)(2)傳參:如果調(diào)用有形參的函數(shù),首先要用實(shí)際參數(shù)初始化形式參數(shù);如果是無參函數(shù),則不存在參數(shù)傳遞工作(3)執(zhí)行:執(zhí)行被調(diào)用函數(shù)的函數(shù)體直到返回處

(4)返回:執(zhí)行到被調(diào)用函數(shù)的return語句處(如果無此語句,則是到函數(shù)體的右大括號(hào)處),執(zhí)行流程返回到剛才主調(diào)用函數(shù)調(diào)用此函數(shù)處

(5)繼續(xù):繼續(xù)執(zhí)行主調(diào)函數(shù)后續(xù)語句至程序完請任課老師首先在VC++下用單步跟蹤調(diào)試運(yùn)行例5.4,觀察函數(shù)調(diào)用的完整流程,注意參數(shù)函數(shù)可以嵌套調(diào)用實(shí)參(實(shí)際參數(shù))與形參(形式參數(shù))145.3

函數(shù)的調(diào)用參數(shù)性質(zhì)出現(xiàn)位置本質(zhì)表達(dá)的含義二者關(guān)系形式參數(shù)函數(shù)定義時(shí)在首部形式參數(shù)表中變量調(diào)用該函數(shù)的入口參數(shù)通用要求,需要幾個(gè)、什么類型的值形式參數(shù)決定了實(shí)際參數(shù)的個(gè)數(shù)和對應(yīng)類型,按從左到右的順序一一匹配對應(yīng)實(shí)際參數(shù)主調(diào)用函數(shù)中函數(shù)調(diào)用時(shí)提供表達(dá)式(常量、變量為其特殊形式)某一次特定調(diào)用時(shí)所提供的實(shí)際入口參數(shù)值(1)

形參在函數(shù)定義時(shí)不占內(nèi)存空間,只有被調(diào)用時(shí)才占內(nèi)存,且用實(shí)參的值初始化它。調(diào)用結(jié)束不再占用空間,等到下次被調(diào)用時(shí)重新再占用空間

(2)實(shí)參直接以表達(dá)式的形式給出,其個(gè)數(shù)與形參個(gè)數(shù)必須完全相同,對應(yīng)數(shù)據(jù)類型最好完全一致返回值類型:指明了函數(shù)執(zhí)行結(jié)束后結(jié)果的類型155.3

函數(shù)的調(diào)用(1)無名變量:當(dāng)函數(shù)執(zhí)行到return表達(dá)式

;

時(shí),將自行定義無名變量接受return后表達(dá)式的值,該變量在被主調(diào)用函數(shù)使用過之后即消失(2)實(shí)參形式:表達(dá)式,其個(gè)數(shù)與形參個(gè)數(shù)必須完全相同,對應(yīng)數(shù)據(jù)類型最好完全一致函數(shù)返回值類型函數(shù)體內(nèi)是否有return語句函數(shù)執(zhí)行到何處返回到調(diào)用點(diǎn)void型可以沒有,但建議用return

;形式的語句如果沒有return語句,則執(zhí)行到函數(shù)體結(jié)束的右大括號(hào)返回調(diào)用處;如果有return語句,則執(zhí)行到return語句處就返回調(diào)用處非void型必須有return表達(dá)式

;形式的語句執(zhí)行到return表達(dá)式

;處就返回到調(diào)用處,無論后續(xù)是否還有其他的語句原型聲明:函數(shù)應(yīng)當(dāng)先定義后調(diào)用,但如果出現(xiàn)了先調(diào)用后定義的情況,則必須在調(diào)用之前作原型聲明原型聲明形式:函數(shù)返回類型函數(shù)名([形式參數(shù)表]);幾點(diǎn)說明:165.4

函數(shù)的原型聲明(1)分號(hào):原型聲明最后的分號(hào)一定要有(2)形式參數(shù)表:形參變量名可以省略,形參類型一定要保留(3)聲明位置:可以在程序的預(yù)處理指令之后第一個(gè)函數(shù)定義之前(建議這種),或者在主調(diào)用函數(shù)的調(diào)用點(diǎn)之前函數(shù)首部后加個(gè)分號(hào)例5.6定義一個(gè)函數(shù)Gcd用于求兩個(gè)整數(shù)的最大公約數(shù),該函數(shù)的定義在程序最后,函數(shù)需要原型聲明。175.4

函數(shù)的原型聲明#include<stdio.h>intgcd(intm,intn);intmain(){intm,n; scanf("%d%d",&m,&n);printf("gcd:%d\n",gcd(m,n)); return0;}intgcd(intm,intn){……}函數(shù)調(diào)用在先函數(shù)定義在后函數(shù)需要作原型聲明intgcd(int,int);

可以省略形參變量名函數(shù)的遞歸:在定義函數(shù)時(shí)直接或間接地調(diào)用了自己直接遞歸:A--〉A(chǔ)(本章所講)間接遞歸:A--〉B--〉A(chǔ)用遞歸求解問題的3個(gè)條件:原問題可轉(zhuǎn)化為新問題,新舊問題的解決方法一樣,但所處理的問題的規(guī)模越來越小可以應(yīng)用這個(gè)轉(zhuǎn)化過程使問題得到解決

必須要有一個(gè)明確的結(jié)束遞歸的終止條件

185.5

函數(shù)的遞歸很多問題適合用函數(shù)方法求解:階乘問題:n!=乘冪問題:

xn=

數(shù)制轉(zhuǎn)換問題漢諾塔問題(經(jīng)典,請自己查閱、學(xué)習(xí))例5.7:定義一個(gè)遞歸函數(shù)實(shí)現(xiàn)求n!主函數(shù)中讀入任意一個(gè)整數(shù),調(diào)用函數(shù)實(shí)現(xiàn)求階乘。(注意與非遞歸函數(shù)作對比,重在理解遞歸的過程)195.5

函數(shù)的遞歸1(當(dāng)n=0時(shí))n*(n-1)!(當(dāng)n>0時(shí))1(當(dāng)n=0時(shí))x*xn-1(當(dāng)n>0時(shí))本例請?jiān)赩C++下實(shí)際運(yùn)行跟蹤演示205.5

函數(shù)的遞歸遞歸函數(shù)代碼:doubleFact(intn){ if(!n) return(1.0); return(n*Fact(n-1));}“遞”即遞推,表示將復(fù)雜的原問題轉(zhuǎn)化為同類型同方法的簡單問題的過程;“歸”即回歸,表示從遞歸調(diào)用終止處依次一層層向前返回處理結(jié)果。

非遞歸(迭達(dá))函數(shù)代碼:doubleFact(intn){ inti;doublef=1.0;for(i=1;i<=n;i++) f*=i;returnf;}每一次調(diào)用時(shí)形參n的值都不一樣,用??臻g管理如果沒有這個(gè)條件,會(huì)怎樣?215.5

函數(shù)的遞歸例5.8數(shù)制轉(zhuǎn)換:將十進(jìn)制數(shù)n轉(zhuǎn)化為B進(jìn)制數(shù)算法步驟:重復(fù)執(zhí)行以下步驟(1)和(2),直到n為0。 (1)利用取余運(yùn)算n%B得到B進(jìn)制數(shù)的一位,值的范圍肯定是0到B-1。 (2)利用整除運(yùn)算n=n/B將B進(jìn)制數(shù)降一階。 (3)從后往前輸出每一次的余數(shù),也就是說,第一次得到的余數(shù)最后一個(gè)輸出,最后一次得到的余數(shù)最先輸出。225.5

函數(shù)的遞歸voidMultiBase(intn,intB){intm; if(n) {MultiBase(n/B,B); m=n%B; if(m<10) printf("%d",m); else printf("%c",m+55); } }遞歸終止條件:n==0此處將輸出語句放在遞歸調(diào)用后能實(shí)現(xiàn)逆序輸出完整程序請?jiān)诰幊汰h(huán)境下演示并跟蹤調(diào)試235.6

變量的作用域與存儲(chǔ)類型

自定義函數(shù)引出了兩個(gè)問題:第一,每一個(gè)變量在什么范圍內(nèi)起作用第二,每一個(gè)變量何時(shí)生成、何時(shí)消失,在程序中能存在多久。變量的作用域是指變量名應(yīng)該在程序的哪一部分可以直接引用,即:在程序哪一部分可見并發(fā)揮作用變量的生命周期是指變量所占用的空間從創(chuàng)建到撤消的這段時(shí)間。二者的關(guān)系:一個(gè)變量如果不在其生命周期,肯定無作用域可言;如果在其生命周期,也未必一直起作用,即使起作用也是在特定的范圍內(nèi)。作用域問題生命周期問題245.6

變量的作用域與存儲(chǔ)類型

變量的作用域取決于變量定義的位置位置有3種變量的生命周期取決于變量的存儲(chǔ)類型,C語言中變量有4種不同的存儲(chǔ)類型,分別用關(guān)鍵字auto、

static、extern、register表示。例5.9

3種不同位置定義的變量,具有不同的作用域函數(shù)體外函數(shù)體內(nèi)函數(shù)語句塊內(nèi)外部(全局)變量,定義點(diǎn)到程序結(jié)束,但去掉同名局部量范圍作用范圍為本函數(shù)體內(nèi)作用范圍僅限于本語句塊內(nèi)在編程環(huán)境下演示,跟蹤主要變量255.6

變量的作用域與存儲(chǔ)類型#include<stdio.h>intcount;

intsumDigit(intn);intmain(){ inta,sum; scanf("%d",&a); if(a<0)a=-a; sum=sumDigit(a); printf("main:sum=%d,count=%d\n",sum,count);return0;}intsumDigit(intn){intsum=0,i; for(i=1;i<=5;i++){ intb; b=n%10; if(!b)break; sum+=b; n=n/10; count++; }printf("sumDigit:i=%d,count=%d,n=%d\n",i,count,n);returnsum;}265.6

變量的作用域與存儲(chǔ)類型變量名變量定義位置變量性質(zhì)變量的作用域特別說明count所有函數(shù)之外,程序的最開頭全局(外部)變量從定義位置開始到程序結(jié)束,在下面的main和sumDigit函數(shù)中均有效編譯后一直占用空間直至程序結(jié)束,其值變化按程序整個(gè)執(zhí)行過程連續(xù)變化amain函數(shù)體開頭局部變量整個(gè)的main函數(shù)體內(nèi)作為調(diào)用函數(shù)的實(shí)際參數(shù)變量summain函數(shù)體開頭局部變量整個(gè)的main函數(shù)體內(nèi)與sumDigit函數(shù)中局部變量同名,但作用域不同,無沖突nsumDigit函數(shù)形參表中局部變量整個(gè)sumDigit函數(shù)體內(nèi)其對應(yīng)實(shí)參是main函數(shù)中的變量asumsumDigit函數(shù)體開頭局部變量整個(gè)sumDigit函數(shù)體內(nèi)與main函數(shù)中局部變量同名,但作用域不同,無沖突isumDigit函數(shù)體開頭局部變量整個(gè)sumDigit函數(shù)體內(nèi)用于控制循環(huán),終止時(shí)最大為6bsumDigit函數(shù)體for循環(huán)語句塊內(nèi)局部變量只在for循環(huán)體內(nèi),不能在函數(shù)的其他位置訪問語句塊的一對括號(hào)類似于函數(shù)體的一對邊界,作用域不出此界275.6

變量的作用域與存儲(chǔ)類型

對例5.9作以下修改(只一處)運(yùn)行觀察現(xiàn)象:(1)在sumDigit函數(shù)體內(nèi)增加一語句:printf("a=%d\n",a);(2)在sumDigit函數(shù)體return前增加語句:printf("b=%d\n",b);(3)刪除sumDigit函數(shù)開頭變量sum的定義(4)在sumDigit函數(shù)體內(nèi)增加變量定義:

intcount=0;(5)將全局變量count的定義位置移到main函數(shù)后sumDigit之前285.6

變量的作用域與存儲(chǔ)類型

變量的存儲(chǔ)類型是指編譯器為變量分配內(nèi)存的方式,它決定變量的生存期變量用4種不同的關(guān)鍵字標(biāo)識(shí)4種不同存儲(chǔ)類型(1)auto:自動(dòng)存儲(chǔ)類型標(biāo)識(shí),為缺省存儲(chǔ)類型(2)static:靜態(tài)存儲(chǔ)類型標(biāo)識(shí),表明該變量位于靜態(tài)存儲(chǔ)區(qū)(3)extern:外部存儲(chǔ)類型標(biāo)識(shí),僅用于變量聲明中,表示該變量在本文件的后面給出定義,或該變量來自于同一個(gè)程序的另一個(gè)文件中。(4)register:寄存器存儲(chǔ)類型標(biāo)識(shí),表明該變量位于CPU的寄存器區(qū)域,加快了訪問變量的速度。295.6

變量的作用域與存儲(chǔ)類型

變量有存儲(chǔ)類型和數(shù)據(jù)類型兩個(gè)屬性,因此,變量的完整定義格式是:[存儲(chǔ)類型關(guān)鍵字]變量類型名變量名1[,變量名2,......變量名n];其中缺省的存儲(chǔ)類型關(guān)鍵字為auto用auto定義自動(dòng)變量函數(shù)內(nèi):自動(dòng)局部變量,在程序運(yùn)行進(jìn)入函數(shù)體或語句塊時(shí)自動(dòng)獲得內(nèi)存空間,退出時(shí)不再占空間函數(shù)外:自動(dòng)全局變量,編譯時(shí)在靜態(tài)存儲(chǔ)區(qū)獲得空間并自動(dòng)初始化為0,程序結(jié)束時(shí)不再占空間生命期就是所在的函數(shù)或語句塊被執(zhí)行時(shí)

整個(gè)程序運(yùn)行期間305.6

變量的作用域與存儲(chǔ)類型

用static定義靜態(tài)變量格式:static變量類型名變量名1[,變量名2,......變量名n];特點(diǎn):編譯時(shí)自動(dòng)獲得內(nèi)存空間,直至程序運(yùn)行結(jié)束空間才被回收,但是并非在生命期內(nèi)的任何時(shí)刻都有作用域,有時(shí)呈“休眠”狀態(tài)函數(shù)內(nèi):靜態(tài)局部變量,在函數(shù)被調(diào)用時(shí)起作用,函數(shù)調(diào)用結(jié)束之后休眠至下一次調(diào)用時(shí)繼續(xù)作用函數(shù)外:靜態(tài)全局變量,僅在程序的當(dāng)前文件中起作用,具體到第9章中介紹初始化只發(fā)生在第一次函數(shù)被調(diào)用時(shí)

315.6

變量的作用域與存儲(chǔ)類型例5.10利用靜態(tài)局部變量求解從1到5的階乘#include<stdio.h>

intfun(intn){ staticintf=1;/*定義靜態(tài)局部變量f*/f=f*n;/*求n的階乘f*/ returnf;/*返回階乘值*/}intmain(){inti;/*定義局部變量i*/ for(i=1;i<=5;i++)/*循環(huán),依次求1到5的階乘*/ printf(“%d!=%d\n",i,fun(i)); return0;}在編程環(huán)境下演示,跟蹤主要變量325.6

變量的作用域與存儲(chǔ)類型

靜態(tài)局部變量的特點(diǎn)(1)靜態(tài)局部變量在編譯階段就在靜態(tài)存儲(chǔ)區(qū)分配了存儲(chǔ)空間,并且一直占用到程序結(jié)束。(2)靜態(tài)局部變量其定義位置在函數(shù)內(nèi)部,仍然是局部變量,所以其作用域僅限于本函數(shù),僅在本函數(shù)被調(diào)用時(shí)才能被訪問。(3)靜態(tài)局部變量只在第一次進(jìn)入函數(shù)時(shí)被初始化,若未指定初值,將自動(dòng)初始化為0。(4)在第二次及以后進(jìn)入函數(shù)時(shí),靜態(tài)局部變量不再初始化,而是從“休眠”狀態(tài)“蘇醒”,在原有基礎(chǔ)上繼續(xù)變化。每次退出函數(shù)時(shí)就進(jìn)入“休眠”狀態(tài)335.6

變量的作用域與存儲(chǔ)類型

例5.10的思考題:

(1)如果將函數(shù)fun中的staticintf=1;改為intf=1;,重新運(yùn)行程序,結(jié)果是?請解釋原因;(2)如果將main函數(shù)中的循環(huán)for(i=1;i<=5;i++)改為for(i=3;i<=5;i++),f恢復(fù)成靜態(tài)局部變量,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論