2010年語(yǔ)言輔導(dǎo)240元作用域及存儲(chǔ)類(lèi)別_第1頁(yè)
2010年語(yǔ)言輔導(dǎo)240元作用域及存儲(chǔ)類(lèi)別_第2頁(yè)
2010年語(yǔ)言輔導(dǎo)240元作用域及存儲(chǔ)類(lèi)別_第3頁(yè)
2010年語(yǔ)言輔導(dǎo)240元作用域及存儲(chǔ)類(lèi)別_第4頁(yè)
2010年語(yǔ)言輔導(dǎo)240元作用域及存儲(chǔ)類(lèi)別_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、概述變量是對(duì)程序中數(shù)據(jù)的存儲(chǔ)空間的抽象內(nèi)存.main() int a; a=10; printf(“%d”,a);編譯或函數(shù)調(diào)用時(shí)為其分配內(nèi)存單元1020002001程序中使用變量名對(duì)內(nèi)存操作變量的存儲(chǔ)屬性變量的屬性數(shù)據(jù)類(lèi)型:變量所持有的數(shù)據(jù)的性質(zhì)(操作屬性)存儲(chǔ)屬性存儲(chǔ)器類(lèi)型:寄存器、靜態(tài)存儲(chǔ)區(qū)、動(dòng)態(tài)存儲(chǔ)區(qū)生存期:變量在某一時(shí)刻存在-靜態(tài)變量與動(dòng)態(tài)變量作用域:變量在某區(qū)域內(nèi)有效-局部變量與全局變量變量的存儲(chǔ)類(lèi)型auto -自動(dòng)型register-寄存器型static -靜態(tài)型extern -外部型變量定義格式: 存儲(chǔ)類(lèi)型 數(shù)據(jù)類(lèi)型 變量表;概述變量是對(duì)程序中數(shù)據(jù)的存儲(chǔ)空間的抽象如: int

2、sum; auto int a,b,c; register int i; static float x,y;變量的存儲(chǔ)屬性局部變量-內(nèi)部變量定義:在函數(shù)內(nèi)定義,只在本函數(shù)內(nèi)有效說(shuō)明:main中定義的變量只在main中有效不同函數(shù)中同名變量,占不同內(nèi)存單元形參屬于局部變量可定義在復(fù)合語(yǔ)句中有效的變量局部變量可用存儲(chǔ)類(lèi)型:auto register static (默認(rèn)為auto)float f1(int a) int b,c; .char f2(int x,int y) int i,j; main() int m,n; .a,b,c有效x,y,i,j有效m,n有效例 不同函數(shù)中同名變量main(

3、) int a,b; a=3; b=4; printf(main:a=%d,b=%dn,a,b); sub(); printf(main:a=%d,b=%dn,a,b);sub() int a,b; a=6; b=7; printf(sub:a=%d,b=%dn,a,b);例 復(fù)合語(yǔ)句中變量#define N 5main() int i; int aN=1,2,3,4,5; for(i=0;iN/2;i+) int temp;temp=ai;ai=aN-i-1;aN-i-1=temp; for(i=0;iN;i+) printf(%d ,ai);運(yùn)行結(jié)果:5 4 3 2 1例 復(fù)合語(yǔ)句中變量#

4、define N 5main() int i; int aN=1,2,3,4,5; for(i=0;iN/2;i+) int temp;temp=ai;ai=aN-i-1;aN-i-1=temp; for(i=0;iN;i+) printf(%d ,ai);例 不同函數(shù)中同名變量main() int a,b; a=3; b=4; printf(main:a=%d,b=%dn,a,b); sub(); printf(main:a=%d,b=%dn,a,b);sub() int a,b; a=6; b=7; printf(sub:a=%d,b=%dn,a,b);運(yùn)行結(jié)果:main:a=3,b=4s

5、ub:a=6,b=7main:a=3,b=4局部變量與全局變量 -外部變量定義:在函數(shù)外定義,可為本文件所有函數(shù)共用有效范圍:從定義變量的位置開(kāi)始到本源文件結(jié)束,及有extern說(shuō)明的其它源文件 應(yīng)盡量少使用全局變量,因?yàn)椋喝肿兞吭诔绦蛉繄?zhí)行過(guò)程中占用存儲(chǔ)單元降低了函數(shù)的通用性、可靠性,可移植性降低程序清晰性,容易出錯(cuò) 定義 說(shuō)明次數(shù): 只能1次 可說(shuō)明多次位置: 所有函數(shù)之外 函數(shù)內(nèi)或函數(shù)外分配內(nèi)存: 分配內(nèi)存,可初始化 不分配內(nèi)存,不可初始化外部變量說(shuō)明: extern 數(shù)據(jù)類(lèi)型 變量表;外部變量定義與外部變量說(shuō)明不同若外部變量與局部變量同名,則外部變量被屏蔽外部變量可用存儲(chǔ)類(lèi)型:缺省

6、 或 static全局變量float max,min;float average(float array, int n) int i; float sum=array0; max=min=array0; for(i=1;imax) max=arrayi; else if(arrayiy?x:y; return(z);main() extern int a,b; printf(max=%d,max(a,b);int a=13,b=-8;運(yùn)行結(jié)果:max=13extern int a,b;int max() int z; z=ab?a:b; return(z);main() printf(max=

7、%d,max();int a=13,b=-8;例 外部變量定義與說(shuō)明/*ch7_17.c*/int a=3,b=5;max(int a, int b) int c; c=ab?a:b; return(c);main() int a=8; printf(max=%d,max(a,b);運(yùn)行結(jié)果:max=8例 外部變量與局部變量存儲(chǔ)方式靜態(tài)存儲(chǔ):程序運(yùn)行期間分配固定存儲(chǔ)空間動(dòng)態(tài)存儲(chǔ):程序運(yùn)行期間根據(jù)需要?jiǎng)討B(tài)分配存儲(chǔ)空間內(nèi)存用戶(hù)區(qū)程序區(qū)靜態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū)全局變量、局部靜態(tài)變量形參變量局部動(dòng)態(tài)變量(auto register)函數(shù)調(diào)用現(xiàn)場(chǎng)保護(hù)和返回地址等生存期靜態(tài)變量:從程序開(kāi)始執(zhí)行到程序結(jié)束動(dòng)態(tài)變

8、量:從包含該變量定義的函數(shù)開(kāi)始執(zhí)行至函數(shù)執(zhí)行結(jié)束動(dòng)態(tài)變量與靜態(tài)變量局部變量默認(rèn)為auto型register型變量個(gè)數(shù)受限,且不能為long, double, float型局部static變量具有全局壽命和局部可見(jiàn)性局部static變量具有可繼承性extern不是變量定義,可擴(kuò)展外部變量作用域變量存儲(chǔ)類(lèi)型#include int i=1;main() static int a; register int b=-10; int c=0; printf(-MAIN-n); printf(i:%d a:%d b:%d c:%dn,i,a,b,c); c=c+8; other(); printf(-MAIN-n); printf(i:%d a:%d b:%d c:%dn,i,a,b,c); i=i+10; other();other() static int a=2; static int b; int c=10; a=a+2; i=i+32; c=c+5; printf(-OTHER-n); printf(i:%d a:%d b:%d c:%dn,i,a,b,c);

溫馨提示

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

評(píng)論

0/150

提交評(píng)論