freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[小學(xué)教育]c語言課件chap6函數(shù)與宏定義(編輯修改稿)

2024-11-14 23:21 本頁面
 

【文章內(nèi)容簡介】 出棧結(jié)果 2021/11/10 18 1. 局部變量 在一個函數(shù)內(nèi)部定義的變量 , 只能在本函數(shù)內(nèi)使用和有效 , 稱為 “ 局部變量 ” 。 ?主函數(shù) main中定義的變量 , 也只能在主函數(shù)內(nèi)使用和有效 。 ?不同函數(shù)中可以使用相同名字的變量 , 且互不干擾 。 ?形式參數(shù)也是局部變量 , 也只能在所在函數(shù)內(nèi)使用和有效 。 ?可以在一個函數(shù)內(nèi)的復(fù)合語句中定義變量 , 且這些變量只在本復(fù)合語句中有效 。 這種復(fù)合語句也稱為 “ 分程序 ” 或 “ 子模塊 ” 。 2. 全局變量 在函數(shù) (包括 main函數(shù) )外定義的變量為外部變量 ,稱為 “ 全局變量 ” 。 全局變量的有效范圍為從定義變量的位置開始到本源文件結(jié)束 。 局部變量和全局變量 2021/11/10 19 ? 如無必要 , 不要使用全局變量 。 因為全局變量既降低程序的清晰性和函數(shù)的通用性 , 且又在程序的全部執(zhí)行過程中都占用存儲空間 。 ? 在文件開頭定義的外部變量才可在整個文件范圍內(nèi)使用 , 若在定義點之前的函數(shù)需引用外部變量 , 則可用關(guān)鍵字 “ extern”作 “ 外部變量說明 ” 。 注意 :外部變量定義和外部變量說明并不是同一回事 。 外部變量的定義只能有一次 , 它的位置在所有函數(shù)之外 。 而同一程序中的外部變量說明可以有多次 , 它的位置在函數(shù)之內(nèi) (哪個函數(shù)要用就在哪個函數(shù)中說明 )。 系統(tǒng)根據(jù)外部變量的定義 (而不是根據(jù)外部變量的說明 )分配存儲單元 。 對外部變量的初始化只能在 “ 定義 ” 時進(jìn)行 , “ extern”只是申明該變量是一個已在外部定義過的變量而已 。 ? 如果在同一源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量不起作用。 ? 全局變量增加了函數(shù)間數(shù)據(jù)聯(lián)系的渠道。由于同一文件中的所有函數(shù)都能引用全局變量的值,當(dāng)需要從一個函數(shù)中帶回多個值時,就能克服函數(shù)調(diào)用只能返回一個值的局限性。 2021/11/10 20 輸出結(jié)果: 10, 4, 8 10, 2, 5 例 include “” main( ) { int a=1, b=2, c=3。 a++。 c+=b。 { int b=4, c。 c=2?b。 a+=c。 printf(“%d,%d,%d\n”, a, b, c)。 } printf(“%d,%d,%d\n”, a, b, c)。 } C編譯內(nèi)存管理示意圖 : 程序區(qū) 靜態(tài)存儲區(qū) 用戶定義存儲區(qū) 動態(tài)存儲區(qū) } 數(shù)據(jù)區(qū) 2021/11/10 22 1. 變量的存儲類別 靜態(tài)變量在程序的運行期間占用固定的存儲空間 ,直到程序的終止而釋放;而動態(tài)變量是在程序的運行期間隨著函數(shù)的調(diào)用隨時動態(tài)地占用和釋放存儲空間 。 即存儲方式是根據(jù)變量的存儲類別決定的 。 C的存儲類別有四種: 自動的 (auto)、 靜態(tài)的 (static)、 寄存器的 (register)、外部的 (extern)。 2. 局部變量的存儲方式 1) 函數(shù)中的局部變量若未專門說明 , 都是由編譯系統(tǒng)自動動態(tài)分配存儲空間 , 這類局部變量稱為自動變量 , 其類型說明前不論是否有關(guān)鍵字 “ auto”, 都屬于動態(tài)存儲類別 。 動態(tài)存儲變量與靜態(tài)存儲變量 2021/11/10 23 ? 局部靜態(tài)變量在靜態(tài)存儲區(qū)分配存儲單元 , 在程序的整個運行期間都不釋放 。 而動態(tài)變量在動態(tài)存儲區(qū)分配存儲單元 , 函數(shù)調(diào)用結(jié)束后即釋放 。 ? 局部靜態(tài)變量在編譯時只賦初值一次 , 以后每次被調(diào)用時不再重新賦值而只保留前次被調(diào)用結(jié)束時的值 。 動態(tài)變量賦初值不是在編譯時而是在函數(shù)被調(diào)用時進(jìn)行的 , 函數(shù)每次被調(diào)用時重新賦值 , 相當(dāng)于賦值語句 。 ? 靜態(tài)變量若未賦初值 , 則在編譯時自動賦初值 0 (數(shù)值型 )或空字符 (字符型 )。 而動態(tài)變量若未賦初值 , 則其值是不確定的 。 ? 雖然局部靜態(tài)變量在函數(shù)被調(diào)用結(jié)束后其值仍然存在 , 但其它函數(shù)是不能引用的 。 2) 若希望被調(diào)函數(shù)在結(jié)束后,其局部變量占用的存儲空間不釋放,以便保留其變量的值,用于下次調(diào)用該函數(shù),則用“ static”說明為 “ 局部靜態(tài)變量 ”。 2021/11/10 24 3. 全局變量的存儲方式 在文件開頭用 extern作說明 , 可以引用另一個文件中定義的全局變量 。 但用 static說明的全局變量不能被其它文件引用 。 例 打印 1到 5的階乘值。 int fac(n) int n。 { static int f =1。 /? 定義 f 為 int型靜態(tài)變量 ?/ f = f ? n 。 return( f )。 } main( ) { int i。 for (i=1。 i=5。 i++) printf(“%d!=%d\n”, i, fac(i))。 } 2021/11/10 25 就函數(shù)的本質(zhì)而言都是全局的 。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1