《C語言配套資源》-第8章第3講變量存儲類別及內(nèi)外部函數(shù)_第1頁
《C語言配套資源》-第8章第3講變量存儲類別及內(nèi)外部函數(shù)_第2頁
《C語言配套資源》-第8章第3講變量存儲類別及內(nèi)外部函數(shù)_第3頁
《C語言配套資源》-第8章第3講變量存儲類別及內(nèi)外部函數(shù)_第4頁
《C語言配套資源》-第8章第3講變量存儲類別及內(nèi)外部函數(shù)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.局部變量和全局變量提綱2.動態(tài)變量和靜態(tài)變量3.變量的其他存儲類別4.內(nèi)部函數(shù)與外部函數(shù)1.局部變量和全局變量局部變量全局變量C語言程序設計定義:局部變量也稱為內(nèi)部變量。局部變量是在函數(shù)內(nèi)作定義說明的,其作用域僅限于函數(shù)內(nèi)。例如:intf1(inta){intb,c;……}intf2(intx){inty,z;……}main(){intm,n;……}函數(shù)f1:函數(shù)f2:主函數(shù)main:

C語言程序設計注意說明:(1)主函數(shù)中定義的變量也只能在主函數(shù)中使用,不能在其它函數(shù)中使用。

(2)形參變量是屬于被調(diào)函數(shù)的局部變量,實參變量是屬于主調(diào)函數(shù)的局部變量。

(3)允許在不同的函數(shù)中使用相同的變量名,它們代表不同的對象,分配不同的單元,互不干擾。運行結(jié)果語句編寫voidf(inta,intb){inti,j;i=a+2;j=b-1;printf("函數(shù)f中:a=%d,b=%d\n",a,b);printf("函數(shù)f中:i=%d,j=%d\n",i,j);}main(){inti=4,j=5;f(i,j);printf("主函數(shù)中:i=%d,j=%d\n",i,j);}函數(shù)f中:a=4,b=5函數(shù)f中:i=6,j=4主函數(shù)中:i=4,j=51.局部變量和全局變量局部變量全局變量1.局部變量和全局變量局部變量全局變量C語言程序設計定義:全局變量也稱為外部變量,它是在函數(shù)外部定義的變量,其作用域是整個源程序。例如:函數(shù)f1:函數(shù)f2:主函數(shù)main:

inta,b;voidf1(){……}floatx,y;intf2(){……}main(){……}1.局部變量和全局變量局部變量全局變量C語言程序設計輸入圓的半徑,求圓的周長和面積。

運行結(jié)果語句編寫floats;floatls(floatr){floatlen;

len=2*3.14*r;s=3.14*r*r;returnlen;}main(){floatc,r;printf("請輸入圓的半徑:");scanf("%f",&r);c=ls(r);printf("圓的周長為:%f\n",c);printf("圓的面積為:%f\n",s);}請輸入圓的半徑:5↙圓的周長為:31.400000圓的面積為:78.5000002.動態(tài)變量和靜態(tài)變量動態(tài)變量靜態(tài)變量C語言程序設計定義:變量前如不加以任何聲明或者專門聲明為auto存儲類別,稱為動態(tài)變量。f(inta){autointb,c=3;

……

}例題:說明:a是形參,屬于動態(tài)變量,b和c是函數(shù)中定義的變量,也屬于屬于動態(tài)變量,對c賦初值3。執(zhí)行完f函數(shù)后,自動釋放a,b,c所占的存儲單元。2.動態(tài)變量和靜態(tài)變量動態(tài)變量靜態(tài)變量C語言程序設計定義:變量的值在函數(shù)調(diào)用結(jié)束后保留原值,用關(guān)鍵字static進行聲明,稱為靜態(tài)變量。注意說明:(1)靜態(tài)變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。(2)靜態(tài)變量在編譯時賦初值,即只賦初值一次。語句編寫f(inta){autob=2;staticc=3;b=b+1;c=c+1;returna+b+c;}main(){inta=1,i;for(i=1;i<=2;i++)printf("第%d次調(diào)用后結(jié)果:%d\n",i,f(a));}變量存儲圖:實參a1b2c3調(diào)用f(1)形參a134運行結(jié)果第1次調(diào)用后結(jié)果:8調(diào)用f(2)5第2次調(diào)用后結(jié)果:93.變量的其他存儲類別register

externC語言程序設計寄存器變量定義:C語言允許將局部變量的值放在CPU中的寄存器中,這種變量叫“寄存器變量”,用關(guān)鍵字register作聲明。注意說明:(1)只有局部自動變量和形式參數(shù)可以作為寄存器變量。(2)一個計算機系統(tǒng)中的寄存器數(shù)目有限,不能定義任意多個寄存器變量。(3)局部靜態(tài)變量不能定義為寄存器變量。3.變量的其他存儲類別register

externC語言程序設計聲明外部變量定義:如果在定義點之前想引用某外部變量,則應該在引用之前用關(guān)鍵字extern作“外部變量聲明”。用extern聲明外部變量,擴展變量的作用域。語句編寫運行結(jié)果請輸入存款金額:800↙余額為:10800元voidsave(){intmoney;externamount;printf("請輸入存款金額:");scanf("%d",&money);amount=amount+money;}intamount=10000;main(){save();printf("余額為:%d元\n",amount);}如果沒有聲明語句externamount;那么在save函數(shù)中amount不會識別,系統(tǒng)報錯。4.內(nèi)部函數(shù)與外部函數(shù)內(nèi)部函數(shù)外部函數(shù)C語言程序設計定義:如果一個函數(shù)只能被本文件中其他函數(shù)所調(diào)用,它稱為內(nèi)部函數(shù)。內(nèi)部函數(shù)又稱靜態(tài)函數(shù)。格式:static

類型標識符函數(shù)名(形參表)static

int

fun(int

a,int

b)

例如:使用內(nèi)部函數(shù)解決兩個文件中存在重名函數(shù)問題。文件test0.c文件test.cstaticintsum(inta,intb,intc){ints;s=a+b+c;returns;}#include"stdio.h"intsum(inta,intb){ints;s=a+b;returns;}main(){intx,y,s;scanf("%d%d",&x,&y);s=sum(x,y);printf("s=%d\n",s);}4.內(nèi)部函數(shù)與外部函數(shù)內(nèi)部函數(shù)外部函數(shù)C語言程序設計定義:在定義函數(shù)時,如果在函數(shù)首部的最左端冠以關(guān)鍵字extern,則表示此函數(shù)是外部函數(shù)。格式:extern

類型標識符函數(shù)名(形參表)extern

int

fun

(int

a,

int

b)

例如:使用外部函數(shù)解決一個文件調(diào)用其他文件中函數(shù)問題。文件test0.c文件test.cexternintdiffer(inta,intb){intz;z=a-b;returnz;}#include"stdio.h"intsum(inta,intb){ints;s=a+b;returns;}main(){intx,y,s,z;scanf("%d%d

溫馨提示

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

最新文檔

評論

0/150

提交評論