您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何分析static關(guān)鍵字,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
static作為C語言中的關(guān)鍵字,其引入之初是為了解決局部變量在函數(shù)結(jié)束之后其值仍然可以得到保存的問題。隨后在C語言的拓展中,又增加了一個(gè)功能,修飾函數(shù)或變量的可見性為本文件。由此我們可以知道,static關(guān)鍵字在C語言中有兩個(gè)作用:一,修改變量;二,修飾函數(shù)。
一:static修飾變量
變量分為局部變量(函數(shù)體內(nèi)定義的變量)和全局變量(函數(shù)體外定義的變量),不管其修飾的是局部變量還是全局變量,為變量分配的內(nèi)存空間都在靜態(tài)區(qū)。
(1)靜態(tài)全局變量:
作用于僅限于變量被定義的文件中,其他文件即使使用了extern聲明也無法使用這個(gè)變量。從變量定義開始,到文件結(jié)尾這部分代碼可以使用這個(gè)靜態(tài)全局變量。變量定義之前的代碼或者其他文件中的代碼無法訪問這個(gè)變量。
(2)靜態(tài)局部變量:
由于局部變量的作用域本身就被限定在了函數(shù)體內(nèi),所以不存在是否在其他文件中使用的爭論,這里的static修飾,使得局部變量具有了全局變量的一些屬性。在函數(shù)第一次被執(zhí)行時(shí),靜態(tài)局部變量就被初始化,在函數(shù)執(zhí)行完畢之后,這個(gè)靜態(tài)局部變量并不會(huì)被銷毀,而是繼續(xù)在內(nèi)存中存在。在以后的函數(shù)執(zhí)行中,這個(gè)變量的初始化語句不會(huì)被再次執(zhí)行,但其賦值語句會(huì)每次都會(huì)被執(zhí)行,函數(shù)執(zhí)行完畢之后,變量的值就在內(nèi)存中更新并不會(huì)銷毀。
二:static修飾函數(shù)
使得函數(shù)的訪問屬性變?yōu)橹荒茉诒疚募性L問。由于C語言有著比較悠久的歷史,在發(fā)展過程中,不想增加其他的關(guān)鍵字,所以使用了static這個(gè)關(guān)鍵字來賦予這個(gè)新的語法特性和含義。
上述內(nèi)容就是如何分析static關(guān)鍵字,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。