C語言學(xué)習(xí)第八章中文_第1頁
C語言學(xué)習(xí)第八章中文_第2頁
C語言學(xué)習(xí)第八章中文_第3頁
C語言學(xué)習(xí)第八章中文_第4頁
C語言學(xué)習(xí)第八章中文_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

變量的作用域

與變量的存儲類別

8.8局部變量和全局變量--8.8.1局部變量內(nèi)部變量:在一個函數(shù)內(nèi)部定義的變量稱內(nèi)部變量。它只在本函數(shù)范圍內(nèi)有效,即:只有在本函數(shù)內(nèi)才能使用這些變量,故稱為“局部變量”。floatf1(inta)/*函數(shù)f1*/{

intb,c;…/*a、b、c有效*/}charf2(intx,inty)/*函數(shù)f2*/{inti,j;/*x、y、i、j有效*/}voidmain()/*主函數(shù)*/{intm,n;…/*m、n有效*/}8.8局部變量和全局變量--8.8.1局部變量內(nèi)部變量:⑴主函數(shù)中定義的變量只在主函數(shù)中有效,而不因為在主函數(shù)中定義而在整個文件或程序中有效。主函數(shù)也不能使用其他函數(shù)中定義的變量。⑵不同函數(shù)中可以使用相同名字的變量,它們代表不同的對象,互不干擾。⑶形式參數(shù)也是局部變量。⑷在一個函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效,這種復(fù)合語句也稱為“分程序”或“程序塊”。8.8局部變量和全局變量--8.8.1局部變量內(nèi)部變量:voidmain(){inta,b;……{intc;c=a+b;c在此范圍內(nèi)有效a,b在此范圍內(nèi)也有效

……

}…}復(fù)合語句也稱為“分程序”或“程序塊”。8.8局部變量和全局變量--8.8.2全局變量外部變量:函數(shù)之外定義的變量稱為外部變量。外部變量可以為本文件中其他函數(shù)所共用。它的有效范圍為從定義變量的位置開始到本源文件結(jié)束。所以也稱全程變量。

8.8局部變量和全局變量--8.8.2全局變量外部變量:intp=1,q=5;/*外部變量*/floatf1(inta)/*定義函數(shù)f1*/{intb,c;…}charc1,c2;/*外部變量*/charf2(intx,inty)/*定義函數(shù)f2*/{inti,j;全局變量p,q的作用范圍

…全局變量c1,c2的作用范圍}voidmain()/*主函數(shù)*/{intm,n;…}

8.8局部變量和全局變量--8.8.2全局變量例8.15有一個一維數(shù)組,內(nèi)放10個學(xué)生成績,寫一個函數(shù),求出平均分、最高分和最低分。#include<stdio.h>floatMax=0,Min=0;

/*全局變量*/voidmain()

{floataverage(floatarray[],intn);floatave,score[10];

inti;

for(i=0;i<10;i++)

scanf(“%f”,&score[i]);

ave=average(score,10);

printf(“max=%6.2f\nmin=%6.2f\naverage=%6.2f\n“,Max,Min,ave);

}8.8局部變量和全局變量--8.8.2全局變量floataverage(floatarray[],intn)/*定義函數(shù),形參為數(shù)組*/

{inti;

floataver,sum=array[0];

Max=Min=array[0];

for(i=1;i<n;i++)

{if(array[i]>Max)Max=array[i];

elseif(array[i]<Min)Min=array[i];

sum=sum+array[i];

}

aver=sum/n;

return(aver);

}8.8局部變量和全局變量--8.8.2全局變量8.域8局部戰(zhàn)變量呢和全容局變族量--8.碌8.忽2全局懇變量建議附:一般關(guān)不使思用全圾局變許量,年因為鐮:⑴全局酬變量本在程繡序的嘩全部兔執(zhí)行朗過程吊中都唉占用填存儲妥單元懂,而躁不是固僅在努需要腿時才繼開辟辛單元唯。⑵使用尾全局矛變量甜過多泡,會帝降低冷程序物的清廈晰性爽。在視各個動函數(shù)奔執(zhí)行蛾時都面可能咬改變費外部鉤變量俯的值持,程窄序容桂易出版錯。朵因此侮,要股限制欲使用姓全局群變量殊。⑶降低響函數(shù)指的通濤用性作。因墨為函億數(shù)在頸執(zhí)行粥時要供依賴違于其魔所在所的外永部變繡量。挖如果秤將一跑個函課數(shù)移騎到另性一個騎文件奔中,光還要費將有過關(guān)的贊外部秒變量奸及其賤值一早起移虎過去而。但災(zāi)若該巷外部哥變量掘與其廳他文缺件的毅變量精同名枯時,爭就會孤出現(xiàn)旅問題厚,降答低了擇程序蹦的可用靠性拾和通治用性羽。一義般要勉求把蜜C程劃序中際的函立數(shù)做厭成一壁個封亭閉體絞,除幟了可嚴(yán)以通塘過“賴實參——形參村”的朱渠道杠與外檔界發(fā)嘉生聯(lián)寬系外浙,沒爐有其幫他渠適道。8.職8局部潑變量硬和全情局變方量--8.嗎8.漸2全局淘變量例8.欄16外部戴變量異與局袍部變?nèi)×客妹?i圖nc傻lu辛de作<st佳di無o.仗h>in方ta=猶3,旺b=發(fā)5;夫/悠*a,緊b為外蝦部變納量*/a,浩b作用布范圍vo徒id次m暗ai鑄n治(奴){in威ta=洗8;秤/金*a為局年部變犁量*/局部揉變量a作用攤范圍pr俗in悼tf鐵(“挨%d傘”,循ma每x(布a,辰b))秘;全局幼變量b的作字用范攝圍}ma堪x(槐in臨ta,in蠟tb)角/針*a,怖b為局童部變推量*/{in飼tc;c=傻a>b?單a∶牽b;形參a、b作用饞范圍re晶tu束rn欣(陶c)給;}8.冠9變量挽的存草儲類尤別--8.譜9.奴1動態(tài)紡存儲米方式積與靜農(nóng)態(tài)存舒儲方請式從變脆量的鋒作用舊域(刺即從侮空間著)角限度來麥分,湯可分闖為:全局陜變量局部瘡變量從變顏量值巖存在前的時輛間角下度來亞分,查可分?jǐn)_為:靜態(tài)柿存儲供方式寧:指禮在程貧序運腦行期輛間由配系統(tǒng)鳴分配瘦固定蔥的存騰儲空恐間的理方式吹。動態(tài)浴存儲進(jìn)方式議:則炊是在妻程序泳運行叉期間罰根據(jù)盼需要緩進(jìn)行否動態(tài)設(shè)的分罩配存斗儲空徒間的亮方式火。該臥存儲散空間攀可分槍為:⑴程序君區(qū)⑵靜態(tài)彈存儲吉區(qū)⑶動態(tài)獨存儲搖區(qū)8.蘭9變量營的存畝儲類忠別--8.輔9.荷1動態(tài)粱存儲些方式叮與靜淹態(tài)存津儲方透式變量接和函從數(shù)有香兩個粘屬性拜:數(shù)據(jù)居類型數(shù)據(jù)號的存輔儲類箱別:數(shù)據(jù)闖在內(nèi)瞇存中桑存儲飯的方熱式。存儲懇方式請分為疑兩大等類:靜態(tài)乏存儲半類動態(tài)擦存儲哄類⑴自動尸的(au扇to)⑵靜態(tài)歲的(st著at桐ic)⑶寄存墨器的沖(re線gi撓st愁er)⑷外部振的(ex語te澤rn)根據(jù)杰變量貧的存鼠儲類核別,懇可以址知道碧變量禁的作酸用域鬼和生喪存期竿。8.騎9變量港的存研儲類萬別--8.左9.港2推au濁t(yī)o變量自動殊變量au泛to:專門狀聲明蒙為st曾at墊ic存儲翅類別乘的局葛部變走量都基是動史態(tài)分效配存挺儲空浪間,使在調(diào)冠用該谷函數(shù)辛?xí)r系筋統(tǒng)會綠給它魔們分涂配存童儲空趙間,拜在函星數(shù)調(diào)剩用結(jié)然束時歉就自旺動釋糞放這唇些存槐儲空名間。鉗因此待這類局部云變量稱為畫自動本變量覆。自動拴變量奏用關(guān)僻鍵字au戰(zhàn)to作存農(nóng)儲類撕別的傘聲明棕。函數(shù)奶中的蘇形參脅和在賣函數(shù)奔中定艘義的豪變量(包括庸在復(fù)裁合語瞧句中精定義斧的變遺量),都晌屬此鼻類。例如起:in芽tf(擱in攪ta)駁/*定庫義f函數(shù)棋,a為形祝參*/{險a際ut倡oin羨tb,梁c=3比;爺/*定義b、c為自屠動變聲量*/…}8.使9變量治的存登儲類習(xí)別--8.消9.敗3用st題at沒ic聲明悉局部及變量靜態(tài)咸變量st敏at桿ic:當(dāng)函戚數(shù)中宜的局柿部變飼量的話值在救函數(shù)謝調(diào)用等結(jié)束政后不饞消失旱而保舌留原鄭值時叼,該蜘變量限稱為因靜態(tài)便局部美變量昨。用關(guān)吹鍵字st葵at活ic進(jìn)行教聲明榨。8.擦9變量圈的存屬儲類產(chǎn)別--8.暈9.喜3用st批at鬼ic聲明竟局部煮變量例8.享17考察意靜態(tài)遠(yuǎn)局部繩變量銳的值蹄。#i按nc生lu將de刷<st要di縱o.猛h>vo訪id扎ma應(yīng)in斧(棍){in過tf(玻in互t);in蜻ta=擱2,輪i;fo乖r雀(影i=灑0;跨i雷<3表;虜i+錯+)pr庫in錢tf愁(“盯%d腫”,胖f(貴a);}in鼻tf(廣in淹ta){研a挽ut墓oin灣tb=公0;st旺at判ic件c狹=3疲;b=淡b+汪1;c=摘c+宗1;re治tu卻rn需(a+厲b+怨c);}8.虹9變量雄的存吧儲類嚇別--8.幅9.豆3用st哄at聰ic聲明新局部旋變量對靜蛇態(tài)局叉部變陵量的緩說明忘:⑴靜態(tài)稀局部食變量妥屬靜難態(tài)存院儲類掉別,蓬在靜毅態(tài)存虎儲區(qū)壯內(nèi)分呈配存郊儲單捆元。良在程蜻序整踩個運珠行期江間都翅不釋漸放。馬而自駱動變購量(塔即動蠟態(tài)局屠部變?nèi)剂浚┎賱佣軕B(tài)存似儲類戀別,驢占動席態(tài)存版儲區(qū)升空間斯而不歸占靜欺態(tài)存焰儲區(qū)躬空間而,函鄙數(shù)調(diào)赤用結(jié)蜻束后叛即釋疼放。⑵對靜共態(tài)局寒部變不量是成在編譽譯時雪賦初何值的背,即午只賦辜初值纖一次怕,在縣程序肢運行降時它騎已有遼初值皆。以餅后每阻次調(diào)綠用函抹數(shù)時分不再備重新盜賦初揀值而隊只是料保留油上次箭函數(shù)發(fā)調(diào)用倘結(jié)束嘩時的怨值。⑶如在貴定義牢局部狀變量摟時不斤賦初走值的謝話,殼則對碎靜態(tài)枕局部娃變量社來說宏,編啄譯時貸自動算賦初哄值0駝(對擊數(shù)值尺型變剖量)沿或空撥字符炮(對謊字符顫變量悶)。咸而對重自動像變量傭來說寬,如引果不晉賦初達(dá)值則堤它的喇值是解一個突不確悠定的愁值。⑷雖然河靜態(tài)蔑局部憑變量嶄在函文數(shù)調(diào)惡用結(jié)睜束后鞠仍然但存在攜,但鳳其他范函數(shù)陸不能碧引用架它。8.圾9變量棄的存別儲類狠別--8.擊9.交3用st摟at蠅ic聲明受局部男變量例8.除18輸出1到5的階爭乘值討。#i傅nc納lu庸de綿<st腔di題o.晶h>vo腦id千ma決in王(精){in淋tfa堡c(斯in聯(lián)tn)逝;in織ti;fo討r君(i峽=1叉;蔽i<翻=5理;墾i+徹+)pr亭in領(lǐng)tf貴(“宣%d!=擴%d\揀n”,喜i僚,fa桌c(愈i))女;}in模tfa刪c(端in抗tn){降s葬t(yī)a關(guān)ti到cin宗tf=很1;f=復(fù)f*寇n;re規(guī)tu乏rn棒(f);}8.暈9變量維的存藥儲類緞別--8.傘9.嚴(yán)4聰re務(wù)gi敲st墳er變量寄存踐器變胃量re語gi拐st抱er:變量泥的值軌是存煮放在錢內(nèi)存震中的虹。當(dāng)餅程序樓中用尚到哪困一個棚變量除的值燙時,治由控耳制器呀發(fā)出剛指令膽將內(nèi)也存中冤該變航量的輝值送嘆到運納算器篇中。肯經(jīng)過盾運算周器進(jìn)懷行運下算,出如果餅需要匪存數(shù)芳,再肯從運淚算器誘將數(shù)笛據(jù)送利到內(nèi)海存存娛放。8.央9變量積的存壤儲類錄別--8.男9.明4聾re蔑gi籠st顛er變量寄存洗器變效量re離gi爭st晉er的使武用:如果布有一掃些變貞量使量用頻船繁,瞞則為憑存取奸變量羅的值致要花柳費不占少時兄間。為提柳高執(zhí)規(guī)行效桶率,C語言扮允許欺將局?jǐn)?shù)部變芝量的事值放兔在CP超U中的咳寄存且器中轉(zhuǎn),需晶要用避時直蓋接從擱寄存羞器取竄出參劍加運對算,健不必劑再到夕內(nèi)存續(xù)中去世存取裝。由于甩對寄回存器持的存朋取速竭度遠(yuǎn)山高于屯對內(nèi)階存的繳存取示速度嶺,因計此這濕樣做??梢詧筇岣吒蓤?zhí)行巨效率葛。這種需變量銳叫做堅寄存集器變萌量,刊用關(guān)柔鍵字re擔(dān)gi哲st錯er作聲酬明。8.蜻9變量柳的存花儲類作別--8.棋9.為5用ex棗te貪rn聲明棗外部混變量外部敞變量銹:外部汗變量把是在蓋函數(shù)獅的外鑰部定始義的漁全局叮變量減,它身的作凡用域懇是從舟變量價的定孝義處寺開始液,到牢本程嘗序文劉件的陵末尾辱。在此烏作用向域內(nèi)較,全形局變門量可宰以為兔程序勸中各蠅個函杯數(shù)所霉引用浮。編冠譯時驕將外愿部變野量分介配在覆靜態(tài)鄙存儲詢區(qū)。用ex媽te寨rn來聲主明外檢部變覆量,解以擴緊展外俘部變割量的疏作用帥城。用ex嚼te燃rn聲明潮外部贊變量噸:在一慌個文憶件內(nèi)謙聲明負(fù)外部兇變量在多期文件當(dāng)?shù)某掏佬蛑袆t聲明舊外部抵變量8.渣9變量季的存掌儲類求別--8.騰9.合5用ex傅te須rn聲明偷外部火變量例8.肝20用ex葡te親rn聲明雀外部大變量政,擴賴展它課在程而序文嶄件中浙的作旦用域嬌。#i士nc班l(xiāng)u漢de縣<st池di責(zé)o.屆h>vo答id食m梁ai竹n(溜){in夕tma針x(柱in承t,眾in說t);遮/*外簡部變當(dāng)量聲矮明*/ex扎te塘rn謠A稱,B殖;pr眼in體tf李("澇%d更\n種",陡ma惰x(酷A,敢B))蛛;}in榴tA=獻(xiàn)13屬,B儲=-駝8;江/*定拔義外木部變加量*/in照tma曲x(氏in刺tx,包in絹ty)填/*定洋義ma冤x函數(shù)希*/{in爸tz;z=束x>y?粒x:闖y;re損tu塔rn塘(z);}8.娘9變量動的存停儲類興別--8.頭9.厘5用ex食te請rn聲明束外部刻變量例8.批21用ex滅te佳rn將外尾部變籮量的雹作用賞域擴輛展到欣其他鑒文件港。本語程序槐的作田用是婦給定b的值摧,輸膽入a和m,求a×俊b和am的值膜。文破件fi榆le便1.累c中的養(yǎng)內(nèi)容回為:#in效cl遣ud乖e印<st溉di螺o.督h>in艱tA;侍/刑*定義旨外部視變量礦*/vo統(tǒng)id描m兵ai序n(不){in叨tpo選we份r(刊in融t);/*函數(shù)鋤聲明嘉*/in瓶tb=掙3,碰c,幕d,商m;pr女in央tf刷(“造en盼te怖rth卡e豎nu逗mb爽er徹a萬a籌nd像i料ts讓p脾ow丙erm:嶄\n”)堵;sc選an陰f(猴“%言d,敬%d”,朗&昏A,宣&竿m)誼;c=油A*賓b;pr答in選tf賺(“霧%d*%d\焰n”斯,A遍,b吸,c);d=po絡(luò)we橡r(蝦m);pr恰in雞tf杜(“戲%d**界%d慚=%d\趟n”捉,A才,m牧,d);}8.悄9變量暖的存警儲類擁別--8.考9.耀5用ex萬te節(jié)rn聲明版外部竿變量例8.蘇21用ex康te喘rn將外熟部變愈量的挽作用賤域擴紙展到程其他潔文件蹦。本菠程序溉的作挨用是堤給定b的值皂,輸置入a和m,求a×能b和am的值楊。文件fi溉le料1.封c中的斬內(nèi)容施為:#i展nc漿lu棄de角<st返di旺o.咱h>in呼tA;懷/兆*定義我外部雙變量酸*/vo挖id及m扁ai喉n(處)鋒{in外tpo司we斤r(輔in環(huán)t);/*函數(shù)情聲明拆*/in賴tb=訊3,炒c,平d,移m;pr求in裳tf程(“衫en打te病rth銅e界nu岸mb描er涼a遭a狼nd擦i獄ts裙p悼ow拖erm:憤\n”)鮮;sc異an心f(購“%智d,淘%d”,露&陵A,延&跟m)俊;c=銀A*肯b;pr蹦in震tf駝(“置%d*%d\嶼n”餃,A異,b譯,c);d=po抽we錯r(臉m);pr罩in說tf詢(“浴%d**掘%d坡=%d\族n”棚,A財,m銳,d);}文件fi尖le左2.銳c中的撤內(nèi)容鼠為:ex聽te有rn概A;/*聲明A為一姑個已獲定義排的外峽部變久量*/in分tpo減wr保e(格in位tn)盞{in乖ti,至y=1議;fo掌r株(勁i=唇1;器i撓<=肢n;盜i參++璃)概y鋼=y解*A癥;理r資et港ur葛n辮(y逃);僚}8.運9變量正的存替儲類潛別--8.闊9.敗6用st技at靈ic聲明賀外部支變量用st逮at闊ic聲明項外部浩變量遺:在程鼠序設(shè)狗計中,某些槳外部串變量市只限后于被雪本文且件引患用,傳而不愈能被屬其他軌文件竿引用逃。這時獻(xiàn)可以記在定迎義外堵部變護量時點加一湊個st赴ai漿ti功c聲明突。例如俗:fi尿le膜1.隸c最fi豆le個2.清cst內(nèi)at咱icin學(xué)tA;茅ex曾te霸rnin驕tA;vo箭id呀m座ai芬n(陳)執(zhí)v乎oi籮dfu呆n(泡in割tn){襲{緩……巨A償=A游*n量;}黃}8.婦9變量賢的存思儲類啞別--8.壤9.默7關(guān)于峰變量膠的聲亦明和古定義定義漸性聲畢明:需要不建立辣存儲厲空間漫的聲音明,陣?yán)缂s:in占ta;引用蘋性聲撈明:不需榴建立毀存儲刮空間桐的聲親明,閱例如轎:ex夸te擁rn齊a拾;注意腿:聲明樹包括頸定義劉,但息并非封所有正的聲移明都派是定著義。對“in削ta;尼”而言桐,它梯既是閣聲明投,又園是定教義。對“ex傷te枕rn群a澇;”而言惱,它滴是聲渣明而敬不是槐定義劣。8.叛9變量魂

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論