1、靜態區域性變數
普通的區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。
static區域性變數中文名叫靜態區域性變數。它與普通的區域性變數比起來有如下幾個區別:
位置:靜態區域性變數被編譯器放在全域性儲存區.data(注意:不在.bss段內,原因見3),所以它雖然是區域性的,但是在程式的整個生命週期中存在。
訪問許可權:靜態區域性變數只能被其作用域內的變數或函式訪問。也就是說雖然它會在程式的整個生命週期中存在,由於它是static的,它不能被其他的函式和原始檔訪問。
值:靜態區域性變數如果沒有被使用者初始化,則會被編譯器自動賦值為0,以後每次呼叫靜態區域性變數的時候都用上次呼叫後的值。這個比較好理解,每次函式呼叫靜態區域性變數的時候都修改它然後離開,下次讀的時候從全域性儲存區讀出的靜態區域性變數就是上次修改後的值。
static的作用是保持變數內容的持久。儲存在靜態資料區的變數會在程式剛開始執行時就完成初始化,也是唯一的一次初始化。
1
#include
2void main()
3 11 }
~
執行結果! stdafx h的作用以及原理
vc工程裡面經常見到stdafx.h這個標頭檔案,以前也沒有特別注意,但是這個檔案用不好經常會出錯,所以就google了一下,總算是弄清楚了。所謂標頭檔案預編譯,就是把乙個工程 project 中使用的一些mfc標準標頭檔案 如windows.h afxwin.h 預先編譯,以後該工程編譯時,不再編...
vuex namespaced的作用以及使用方式
vuex中的store分模組管理,需要在store的index.js中引入各個模組,為了解決不同模組命名衝突的問題,將不同模組的namespaced true,之後在不同頁面中引入getter actions mutations時,需要加上所屬的模組名 1 宣告分模組的store時加上namespa...
xml作用以及語法
2 xml作用 2.1 描述帶關係的資料 軟體的配置檔案 web伺服器 pc 學生管理系統 新增學生功能 新增學生頁面 name eric email eric qq.com host.xml 255.43.12.55 1521 資料庫伺服器 pc 主伺服器 255.43.12.54 oracle資...