十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
static用來說明靜態(tài)變量,并且static的作用分為以下三種:
1.修飾局部變量-稱為靜態(tài)局部變量
2.修飾全局變量-稱為靜態(tài)全局變量
3.修飾函數(shù)-稱為靜態(tài)函數(shù)
1.當(dāng)static修飾局部變量時(shí),使局部變量的生命周期延長,來段代碼說明:
a.??我們知道,局部變量進(jìn)入時(shí)創(chuàng)建,出了作用域之后就銷毀了 ,而經(jīng)過static修飾過的局部變量的生命周期會延長,從而導(dǎo)致出了作用域之后局部變量不會被銷毀,也就是說代碼中的變量a一直存在,存儲在內(nèi)存中(a的地址也不變)。
static int a=1;//當(dāng)代碼運(yùn)行到這一段時(shí)會直接跳過這一行代碼,從而導(dǎo)致a的值產(chǎn)生累計(jì)的效果。
這樣解釋你如果可以理解的話,那么我們就進(jìn)行更深入的解析。
b.??我們的內(nèi)存分三個(gè)區(qū):棧區(qū),堆區(qū),靜態(tài)區(qū)。
而:
int a = 1;//局部變量a是放在棧區(qū)的。進(jìn)了作用域創(chuàng)建,出來作用域銷毀。
staic int a = 1;//此時(shí)a是靜態(tài)變量,是存儲在靜態(tài)區(qū)的。出了作用域不銷毀,直到程序結(jié)束才銷毀。
c.??所以綜上得出結(jié)論:static修飾的變量實(shí)際上是改變了變量在內(nèi)存中的存儲類型(使得變量從一開始的棧區(qū)轉(zhuǎn)移到靜態(tài)區(qū))從而導(dǎo)致生命周期延長,但是并不影響作用域。
2.static修飾全局變量時(shí),將外部鏈接屬性變成了內(nèi)部鏈接屬性,使全局變量的作用域只能在該源文件中執(zhí)行。(全局變量是具有外部鏈接屬性的)
//這里extern是用來申明外部符號的。
僅僅加了一個(gè)static就開始報(bào)錯(cuò)。
3.static修飾函數(shù)時(shí),將外部鏈接屬性變成了內(nèi)部鏈接屬性,使函數(shù)的作用域只能在該源文件中執(zhí)行(與修飾全局變量十分類似)
?????????????????????????????????????????那么請留下您的足跡,咱們一起進(jìn)步!??!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧