




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
doublecylinder(doubler,doubleh){…returnresult;}intmain(void){doublecylinder(doubler,doubleh);…volume=cylinder(r,h);….return0;};1)函數(shù)原型聲明2)函數(shù)調(diào)用3)函數(shù)定義函數(shù)的定義和調(diào)用5.3變量與函數(shù)5.3.1局部變量和全局變量
——變量的作用范圍5.3.2變量生命周期和靜態(tài)局部變量
——變量的存儲(chǔ)狀態(tài)5.3.1局部變量和全局變量1.局部變量①在函數(shù)內(nèi)定義的變量(包括形參)作用范圍:本函數(shù)內(nèi)部②定義在復(fù)合語(yǔ)句內(nèi)的變量作用范圍:復(fù)合語(yǔ)句內(nèi)部2.全局變量 在函數(shù)以外定義的變量,不從屬于任一函數(shù)作用范圍:從定義處到源文件結(jié)束(包括各函數(shù))aaaf1()f2()inta;inta;例5-6局部變量的作用范圍#include<stdio.h>intmain(void){inta;scanf(“%d”,&a);if(a==1){ /*復(fù)合語(yǔ)句開始*/intb=2;b=a+b;a=a+b; } /*復(fù)合語(yǔ)句結(jié)束*/ printf("%d",a); return0;}b:小范圍內(nèi)的臨時(shí)變量
4例5-7全局變量定義#include"stdio.h"intx=0; /*定義全局變量x*/intf(){intx=4;/*x為局部變量*/returnx;}intmain(void){
inta=1;
x
=a; /*對(duì)全局變量x賦值x=1*/a=f(); /*a=4*/{
intb=2;
b=a+b; /*b=6*/
x=x+b; /*全局變量運(yùn)算x=1+6*/}printf("%d%d",a,x);return0;}若局部變量與全局變量同名,局部變量?jī)?yōu)先47變量作用范圍示例intx=1;voidmain(){inta=2;……..{
intb=3;a=20;…..}f();…}intt=4;voidf(){intx=5,b=6;…….}inta=7;
x=?a=?b=?
x=?b=?t=?a=?
x=?b=?t=?a=?
x=1a=20b=3
x=?a=?b=?
x=1a=20b沒(méi)有定義
x=1b=無(wú)t=4a=7若函數(shù)內(nèi)局部變量與函數(shù)中復(fù)合語(yǔ)句內(nèi)變量同名,復(fù)合語(yǔ)句內(nèi)變量?jī)?yōu)先
x=5b=6t=4a沒(méi)定義
全局變量與局部變量的使用盡可能使用函數(shù)內(nèi)局部變量,保持函數(shù)間的獨(dú)立性慎用全局變量,全局變量對(duì)整個(gè)程序運(yùn)行都有影響復(fù)雜的程序會(huì)變得很難預(yù)測(cè)。上述概念反映了變量的作用域,是一種空間尺度。變量還有一個(gè)時(shí)間尺度,稱為變量的生命周期,反映了變量的存儲(chǔ)狀態(tài)。5.3.2變量生命周期和靜態(tài)局部變量
變量生命周期變量從定義開始分配存儲(chǔ)單元,到運(yùn)行結(jié)束存儲(chǔ)單元被收回的整個(gè)過(guò)程。C程序在內(nèi)存中的存儲(chǔ)狀態(tài)
一旦定義了變量,C編譯器就為其分配內(nèi)存空間5.3.2變量生命周期和靜態(tài)局部變量
變量的存儲(chǔ)狀態(tài)與其在空間的作用域相關(guān)變量的存儲(chǔ)類型:靜態(tài)存儲(chǔ)方式程序在運(yùn)行期間由系統(tǒng)分配固定的存儲(chǔ)空間,即數(shù)據(jù)被存儲(chǔ)到靜態(tài)數(shù)據(jù)區(qū)程序在運(yùn)行期間根據(jù)需要?jiǎng)討B(tài)的分配存儲(chǔ)空間,即數(shù)據(jù)被存儲(chǔ)到動(dòng)態(tài)數(shù)據(jù)區(qū)(2)動(dòng)態(tài)存儲(chǔ)方式5.3.2變量生命周期和靜態(tài)局部變量變量的存儲(chǔ)方式與其在空間的作用域相關(guān)1.局部變量的存儲(chǔ)方式靜態(tài)存儲(chǔ)方式
static
類型名變量表
用static聲明的局部變量被存儲(chǔ)到靜態(tài)數(shù)據(jù)區(qū)內(nèi)靜態(tài)變量的初值缺省為0
函數(shù)調(diào)用后該變量值仍然被保留在內(nèi)存中,直到程序運(yùn)行結(jié)束。用static定義過(guò)的變量被簡(jiǎn)稱為靜態(tài)變量#include<stdio.h>voidfun(intk);intmain(void){intk;for(k=1;k<=3;k++)fun(k);return0;}voidfun(intk){
staticinta=100;printf(“%d,",a);a+=k; }例5-8靜態(tài)局部變量示例100,101,103,k=1輸出a=100,a更新為101k=2輸出a=101,a更新為103k=3輸出a=103,a更新為106靜態(tài)變量初始操作只執(zhí)行一次。靜態(tài)變量會(huì)記住前一次函數(shù)調(diào)用時(shí)留下來(lái)的值5.3.2變量生命周期和靜態(tài)局部變量變量的存儲(chǔ)方式與其在空間的作用域相關(guān)1.局部變量的存儲(chǔ)方式非static的局部變量在其所在函數(shù)被調(diào)用時(shí),系統(tǒng)自動(dòng)為它們?cè)趧?dòng)態(tài)數(shù)據(jù)區(qū)分配內(nèi)存空間,一旦函數(shù)調(diào)用結(jié)束,這些存儲(chǔ)空間被系統(tǒng)收回。變量的值不復(fù)存在。因此,局部變量又稱自動(dòng)變量。(2)動(dòng)態(tài)存儲(chǔ)方式自動(dòng)變量的定義:auto類型名變量表
沒(méi)有特殊說(shuō)明的局部變量被認(rèn)為是auto存貯的5.3.2變量生命周期和靜態(tài)局部變量(2)動(dòng)態(tài)存儲(chǔ)方式函數(shù)中的形參、函數(shù)中定義的非static變量等局部變量都屬于auto變量,它們都是動(dòng)態(tài)變量自動(dòng)變量(auto)就是普通的局部變量intx,y;
autointx,y;charc1;autocharc1;函數(shù)調(diào)用時(shí),定義變量,分配存儲(chǔ)單元。函數(shù)調(diào)用結(jié)束,收回存儲(chǔ)單元。1.局部變量的存儲(chǔ)方式5.3.2變量生命周期和靜態(tài)局部變量變量的存儲(chǔ)方式與其在空間的作用域相關(guān)2.全局變量的存儲(chǔ)方式全局變量與具體函數(shù)無(wú)關(guān),全部存儲(chǔ)在靜態(tài)數(shù)據(jù)區(qū)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工保運(yùn)合同范例
- 農(nóng)村阿姨采購(gòu)合同范例
- 供貨定金合同范例
- 2000建筑合同范例
- 代運(yùn)營(yíng)傭金合同范例
- l勞動(dòng)合同范例續(xù)簽
- 兄弟房屋合建合同范例
- 保潔器具銷售合同范例
- 基于體素分析的早期阿爾茨海默病患者小腦形態(tài)學(xué)研究
- 社區(qū)消防管理工作的重要性及開展策略研究
- 2025年度事業(yè)單位招聘考試公共基礎(chǔ)知識(shí)模擬試卷及答案(共四套)
- 2024年海東市第二人民醫(yī)院自主招聘專業(yè)技術(shù)人員筆試真題
- 專題07 綜合性學(xué)習(xí)【知識(shí)精研】中考語(yǔ)文二輪復(fù)習(xí)
- 2025年江西陶瓷工藝美術(shù)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)1套
- 《計(jì)算機(jī)基礎(chǔ)與應(yīng)用(Office 和 WPS Office )》課件 項(xiàng)目二?計(jì)算機(jī)操作系統(tǒng)配置與應(yīng)用
- 2025年湖南電氣職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及參考答案
- 混凝土拌合站拌合運(yùn)輸工程合同
- 機(jī)床操作與數(shù)控編程作業(yè)指導(dǎo)書
- 2025云南昆明空港投資開發(fā)集團(tuán)招聘7人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)下冊(cè)第二單元百分?jǐn)?shù)(二)單元檢測(cè)(含答案)
- 2025云南昆明空港投資開發(fā)集團(tuán)招聘7人高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論