變數的理解

2021-08-19 15:13:04 字數 1540 閱讀 9725

一.全域性變數:定義在函式外部的變數;

生命週期:程式開始時建立和程式結束時銷毀。

作用域:   定義變數的開始直到結束。

預設值:    在全域性(靜態)變數區為0。

例:在min.cpp中定義全域性變數 int a=10;

若在max.cpp中呼叫a,使用extern(引用外部符號) int a就能宣告全域性變數a,然後就可以使用a

二. 靜態全域性變數

與全域性變數的區別:加static(靜態,值可以變,主要用於修飾函式)

生命週期:程式開始時建立和程式結束時銷毀。

作用域:   定義變數的開始直到結束。

預設值:    在全域性(靜態)變數區為0。

例:在min.cpp中定義全域性變數 static int a=10;

若在max.cpp中呼叫a,即使使用extern(引用外部符號) ,在max.cpp中也不能使用int a=10.

三.區域性變數:定義在函式內部的變數,包括形參。

生命週期:進入函式時建立,退出函式時銷毀

作用域:    本函式內部有效。

預設值:  隨機值。

記憶體區域:棧裡面

eg:

# includevoid fun()  

int main()

return 0;

}

執行結果:

四:靜態區域性變數:定義在函式內部的變數,包括形參。

生命週期:進入函式時建立,程式結束時銷毀

作用域:    無

預設值:  0

記憶體區域:全域性變數區

static int a=0;//第一次進入才執行

eg:

# includevoid fun()  

int main()

return 0;

}

執行結果:

五:動態記憶體

生命週期:建立動態記憶體時建立,調運動態記憶體釋放函式時銷毀

預設值 : 無

記憶體區域:堆(記憶體洩漏)

#include #includeint * fun()  

int main()

free(p); //釋放動態記憶體

return 0;

}

執行結果:

六. 函式:外部函式和內部函式

記憶體區域:在**段

有static  內部

eg:在max.h中存放max函式的宣告,在主函式頁新增max.h標頭檔案便可使用max函式.如果若在max函式前新增static,即使使用extern 宣告max函式也無法使用max函式。

理解Python的「變數」

和c的變數完全不同,c變數修改值位址是不會變的,即重寫了該變數名對應位址的儲存單元內的資料值。python 現x 10,意味著引用x指向了10 所以引用是啥 實際上我也不清楚這裡所謂引用的實現到底是什麼,只知道x指向了存放10的儲存單元。然後,id x 可以檢視到具體位址。我個人的理解是,可變資料型...

global變數的理解

此函式是定義全域性變數的函式 如果b 2defa b 1 b return ba 這個時候程式執行就會報錯,為什麼我不清楚,但是不能直接b b 1 但是c b 1就可以 如果b 2def a b b 1 b return b a b 這個程式就不會報錯,因為b這個變數已經被匯入 如果b 2defa ...

理解變數提公升

es5提供了兩種變數宣告的方式,分別是var和function。var是變數宣告,function是函式宣告。函式宣告優先於變數宣告,解析器會率先讀取函式宣告,並使其在執行任何 之前可用。理解乙個過程 程式設計師都知道計算機只能識別0和1,也就是二進位制。那麼計算機是怎麼識別 的呢?計算機執行 前會...