




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
變量和它的作用范圍變量概述變量的作用范圍變量的生命周期變量的作用域變量的可見性變量的存儲(chǔ)類別01變量概述變量的定義變量是計(jì)算機(jī)程序中用于存儲(chǔ)數(shù)據(jù)的標(biāo)識(shí)符,它可以存儲(chǔ)不同類型的數(shù)據(jù),并在程序執(zhí)行過程中被修改。變量是程序的基本組成單元之一,用于實(shí)現(xiàn)數(shù)據(jù)的輸入、輸出、處理和存儲(chǔ)等功能。變量的類型變量可以分為靜態(tài)變量和動(dòng)態(tài)變量,靜態(tài)變量在程序執(zhí)行期間一直存在,而動(dòng)態(tài)變量在程序執(zhí)行到其所在代碼塊時(shí)才被創(chuàng)建,執(zhí)行完畢后被銷毀。根據(jù)存儲(chǔ)方式分類變量可以分為整型、浮點(diǎn)型、字符型、布爾型等類型,不同類型的變量在內(nèi)存中占用的空間大小和存儲(chǔ)方式也不同。根據(jù)數(shù)據(jù)類型分類變量可以分為全局變量和局部變量,全局變量在整個(gè)程序中都可見,而局部變量只在其所在的代碼塊中可見。根據(jù)作用域分類01變量名必須以字母或下劃線開頭,后面可以跟字母、數(shù)字或下劃線。02變量名不能是Python語言中的關(guān)鍵字或保留字。03變量名應(yīng)該具有描述性,能夠清晰地表達(dá)其含義和用途。04變量名一般采用小寫字母和下劃線組合的方式命名,多個(gè)單詞之間用下劃線分隔。變量的命名規(guī)則02變量的作用范圍在函數(shù)或代碼塊內(nèi)部定義的變量,只在該函數(shù)或代碼塊內(nèi)有效。定義從聲明點(diǎn)開始,到函數(shù)或代碼塊的結(jié)束點(diǎn)為止。作用范圍在進(jìn)入函數(shù)或代碼塊時(shí)創(chuàng)建,在退出時(shí)銷毀。生命周期只能通過函數(shù)內(nèi)部的語句進(jìn)行訪問和操作。訪問方式局部變量定義在所有函數(shù)外部定義的變量,可以在整個(gè)程序范圍內(nèi)訪問。作用范圍從聲明點(diǎn)開始,一直到程序的結(jié)束。生命周期在整個(gè)程序運(yùn)行期間都存在。訪問方式可以在任何函數(shù)內(nèi)部通過變量名直接訪問。全局變量在函數(shù)內(nèi)部定義并使用static關(guān)鍵字修飾的變量,其值在函數(shù)調(diào)用之間保持持久。定義作用范圍生命周期訪問方式局限于定義它的函數(shù)內(nèi)部。在程序執(zhí)行期間一直存在,而不是每次函數(shù)調(diào)用時(shí)創(chuàng)建和銷毀。只能在定義它的函數(shù)內(nèi)部訪問。靜態(tài)變量定義在一個(gè)源文件中定義的全局變量,可以被其他源文件中的函數(shù)引用。作用范圍可以在其他源文件中訪問。生命周期與全局變量相同,在整個(gè)程序運(yùn)行期間都存在。訪問方式需要使用extern關(guān)鍵字在其他源文件中聲明,然后就可以像全局變量一樣使用。外部變量03變量的生命周期03作用范圍自動(dòng)變量的作用范圍僅限于其所在的函數(shù)內(nèi)部,其他函數(shù)無法直接訪問。01定義自動(dòng)變量是在函數(shù)內(nèi)部定義的局部變量,當(dāng)函數(shù)被調(diào)用時(shí)自動(dòng)創(chuàng)建,函數(shù)返回時(shí)自動(dòng)銷毀。02生命周期自動(dòng)變量的生命周期僅限于其所在的函數(shù)執(zhí)行期間。一旦函數(shù)執(zhí)行完畢,自動(dòng)變量所占用的內(nèi)存空間會(huì)被自動(dòng)釋放。自動(dòng)變量定義靜態(tài)存儲(chǔ)類變量是在函數(shù)內(nèi)部定義并使用static關(guān)鍵字修飾的局部變量,或者是在函數(shù)外部定義的全局變量。靜態(tài)變量在程序執(zhí)行期間一直存在。生命周期靜態(tài)變量的生命周期為整個(gè)程序執(zhí)行期間。無論函數(shù)被調(diào)用多少次,靜態(tài)變量只會(huì)被初始化一次,并在程序結(jié)束時(shí)銷毀。作用范圍靜態(tài)變量的作用范圍根據(jù)其定義的位置而定。在函數(shù)內(nèi)部定義的靜態(tài)變量只能在該函數(shù)內(nèi)部訪問,而在函數(shù)外部定義的靜態(tài)變量可以在整個(gè)文件或程序中訪問。靜態(tài)存儲(chǔ)類變量010203定義動(dòng)態(tài)存儲(chǔ)類變量是在程序執(zhí)行過程中動(dòng)態(tài)分配的變量,通常使用malloc、calloc或realloc等函數(shù)在堆上分配內(nèi)存空間。生命周期動(dòng)態(tài)變量的生命周期取決于程序員的管理。如果程序員忘記釋放動(dòng)態(tài)分配的內(nèi)存空間,則會(huì)導(dǎo)致內(nèi)存泄漏。當(dāng)程序員使用free函數(shù)釋放內(nèi)存空間時(shí),動(dòng)態(tài)變量的生命周期結(jié)束。作用范圍動(dòng)態(tài)變量的作用范圍與其定義的位置無關(guān),可以在程序的任何位置訪問。但是需要注意,如果動(dòng)態(tài)變量是在函數(shù)內(nèi)部定義的,則需要在函數(shù)返回前釋放其占用的內(nèi)存空間,否則會(huì)導(dǎo)致內(nèi)存泄漏。動(dòng)態(tài)存儲(chǔ)類變量定義線程存儲(chǔ)類變量是與特定線程相關(guān)聯(lián)的變量,每個(gè)線程都有自己的線程存儲(chǔ)類變量副本。線程存儲(chǔ)類變量通常使用__thread或thread_local關(guān)鍵字進(jìn)行定義。生命周期線程存儲(chǔ)類變量的生命周期與線程的生命周期相同。當(dāng)線程啟動(dòng)時(shí),線程存儲(chǔ)類變量被創(chuàng)建;當(dāng)線程結(jié)束時(shí),線程存儲(chǔ)類變量被銷毀。作用范圍線程存儲(chǔ)類變量的作用范圍僅限于其所在的線程內(nèi)部。不同線程之間的線程存儲(chǔ)類變量互不影響,每個(gè)線程都有自己的變量副本。010203線程存儲(chǔ)類變量04變量的作用域在代碼塊(如if語句、for循環(huán)等)中定義的變量具有塊作用域。它們?cè)谠摯a塊內(nèi)可見,并在代碼塊結(jié)束時(shí)銷毀。塊作用域定義在if語句中定義的變量只在if語句塊內(nèi)有效。示例塊作用域文件作用域定義在所有函數(shù)和類外部定義的變量具有文件作用域,也稱為全局作用域。這些變量在整個(gè)文件內(nèi)都可見。示例在函數(shù)和類外部定義的變量可以在整個(gè)文件內(nèi)被訪問和修改。文件作用域函數(shù)作用域函數(shù)作用域定義在函數(shù)內(nèi)定義的變量具有函數(shù)作用域。它們?cè)谠摵瘮?shù)內(nèi)可見,并在函數(shù)結(jié)束時(shí)銷毀。示例在函數(shù)內(nèi)部定義的變量只在該函數(shù)內(nèi)有效。在類內(nèi)定義的變量具有類作用域。它們?cè)谠擃悆?nèi)可見,并可以通過類的對(duì)象進(jìn)行訪問。在類內(nèi)部定義的變量和方法可以通過該類的對(duì)象進(jìn)行訪問和調(diào)用。類作用域示例類作用域定義05變量的可見性變量的可見性指的是在程序中的某個(gè)位置,能否訪問到某個(gè)變量??梢娦远x變量的可見性范圍通常受限于其聲明的作用域,作用域決定了變量在哪些代碼塊中是可見的??梢娦苑秶梢娦缘母拍罹植孔兞康目梢娦跃植孔兞?jī)H在其聲明的代碼塊內(nèi)可見,一旦超出該代碼塊,變量將不可見。全局變量的可見性全局變量在整個(gè)程序中都可見,可以在任何函數(shù)或代碼塊中訪問。靜態(tài)變量的可見性靜態(tài)變量在聲明它的文件內(nèi)可見,其他文件無法直接訪問。可見性的規(guī)則代碼模塊化合理地運(yùn)用變量的可見性規(guī)則,可以將程序劃分為不同的模塊,降低代碼的耦合度,提高代碼的可讀性和可重用性。調(diào)試和測(cè)試在調(diào)試和測(cè)試過程中,可以通過改變變量的可見性來觀察程序的行為和結(jié)果,以便更好地定位和解決問題。數(shù)據(jù)封裝通過限制變量的可見性,可以實(shí)現(xiàn)數(shù)據(jù)的封裝和隱藏,提高程序的安全性和可維護(hù)性。可見性的應(yīng)用06變量的存儲(chǔ)類別自動(dòng)存儲(chǔ)類別在函數(shù)內(nèi)部定義的局部變量,通常存儲(chǔ)在棧內(nèi)存中,當(dāng)函數(shù)被調(diào)用時(shí)自動(dòng)創(chuàng)建,函數(shù)返回時(shí)自動(dòng)銷毀。自動(dòng)變量自動(dòng)變量的作用范圍僅限于定義它的函數(shù)內(nèi)部,其他函數(shù)無法直接訪問。作用范圍VS通過static關(guān)鍵字定義的變量,存儲(chǔ)在程序的靜態(tài)內(nèi)存區(qū)域,其生命周期為整個(gè)程序運(yùn)行期間。作用范圍靜態(tài)變量的作用范圍可以是局部的或全局的,取決于它們?cè)谀睦锒x。局部靜態(tài)變量只在其定義的函數(shù)內(nèi)部可見,而全局靜態(tài)變量則在整個(gè)文件內(nèi)可見。靜態(tài)變量靜態(tài)存儲(chǔ)類別通過register關(guān)鍵字定義的變量,建議編譯器將變量存儲(chǔ)在CPU的寄存器中,以提高訪問速度。寄存器變量的作用范圍與普通自動(dòng)變量相同,僅限于定義它的函數(shù)內(nèi)部。但需要注意的是,寄存器變量的具體存儲(chǔ)位置由編譯器決定,因此并不保證一定存儲(chǔ)在寄存器中。寄存器變量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教學(xué)設(shè)計(jì):三角形外角的演示策略
- 臨港商業(yè)物業(yè)管理服務(wù)預(yù)案50p
- 拋丸清理操作規(guī)程
- 2024年青海省中考一模地理試題(解析版)
- 2025年石家莊從業(yè)資格證貨運(yùn)考試試題
- 三農(nóng)村產(chǎn)業(yè)結(jié)構(gòu)調(diào)整實(shí)踐手冊(cè)
- 企業(yè)招聘面試安排表格
- 企業(yè)管理流程圖繪制的方法及技巧
- 工廠特殊崗位保密協(xié)議
- 心理學(xué)社交技能知識(shí)點(diǎn)梳理題
- 《水稻病蟲害及防治》課件
- 藥品網(wǎng)絡(luò)銷售監(jiān)督管理辦法培訓(xùn)
- 《動(dòng)物細(xì)胞工程制藥》課件
- 本校教材選用組織機(jī)構(gòu)及職責(zé)-選用程序及要求
- 材料供應(yīng)履約信用證明:免修版模板范本
- 門式起重機(jī)、架橋機(jī)作業(yè)前安全隱患排查表
- 不合格品處置記錄表(標(biāo)準(zhǔn)版)
- 德語現(xiàn)代主義文學(xué)-浙江大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 機(jī)床數(shù)控技術(shù)PPT完整全套教學(xué)課件
- 店面租賃合同店面租賃合同店面租賃合同書
- lm3s8962開發(fā)板用戶手冊(cè)
評(píng)論
0/150
提交評(píng)論