14 變數型別

2022-02-23 23:13:07 字數 1668 閱讀 4342

c語言根據變數作用域的不同,將變數分為區域性變數和全域性變數。

1> 定義:在函式內部定義的變數,稱為區域性變數。形式引數也屬於區域性變數。

2> 作用域:區域性變數只在定義它的函式內部有效,即區域性變數只有在定義它的函式內部使用,其它函式不能使用它。

1> 定義:在所有函式外部定義的變數,稱為全域性變數。

2> 作用域:全域性變數的作用範圍是從定義變數的位置開始到源程式結束,即全域性變數可以被在其定義位置之後的其它函式所共享。

1 int a;

2 3 int main ()

4

第1行的變數a是全域性變數,第5行的變數b是區域性變數。

* 變數的儲存型別就是指變數儲存在什麼地方。有3個地方可以用於儲存變數:普通記憶體、執行時堆疊、硬體暫存器。變數的儲存型別決定了變數何時建立、何時銷毀以及它的值能保持多久,也就是決定了變數的生命週期。

*c語言根據變數的儲存型別的不同,可以把變數分為:自動變數、靜態變數、暫存器變數。

1> 定義:自動變數是儲存在堆疊中的。

2> 哪些是自動變數:被關鍵字auto修飾的區域性變數都是自動變數,但是極少使用這個關鍵字,基本上是廢的,因為所有的區域性變數在預設情況下都是自動變數。

3> 生命週期:在程式執行到宣告自動變數的**塊(函式)時,自動變數才被建立;當自動變數所在的**塊(函式)執行完畢後,這些自動變數就會自行銷毀。如果乙個函式被重複呼叫,這些自動變數每次都會重新建立。

1 void test(int a, int b)
第1行的變數a、b,第2行的變數c、第4行的變數d都是自動變數。

1> 定義:靜態變數是儲存在靜態記憶體中的,也就是不屬於堆疊。

2> 哪些是靜態變數:

3> 生命週期:靜態變數在程式執行之前建立,在程式的整個執行期間始終存在,直到程式結束。

1 #include 2 

3 int a;

4 5 void test()

14 15 int main()

21

22 return 0;

23 }

* 第3行的變數a、第6行的變數b都是靜態變數,第9行的變數c、第16行的變數i是自動變數。

* 因為第6行的變數b是靜態變數,所以它只會被建立一次,而且生命週期會延續到程式結束。因為它只會建立一次,所以第6行**只會執行一次,下次再呼叫test函式時,變數b的值不會被重新初始化為0。

* 注意:雖然第6行的變數b是靜態變數,但是只改變了它的儲存型別(即生命週期),並沒有改變它的作用域,變數b還是只能在test函式內部使用。

* 我們在main函式中重複呼叫test函式3次,輸出結果為:

1> 定義:儲存在硬體暫存器中的變數,稱為暫存器變數。暫存器變數比儲存在記憶體中的變數訪問效率更高(預設情況下,自動變數和靜態變數都是放在記憶體中的)

2> 哪些變數是暫存器變數:

3> 生命週期:因為暫存器變數本身就是自動變數,所以函式中的暫存器變數在呼叫該函式時占用暫存器中存放的值,當函式結束時釋放暫存器,變數消失。

4> 使用注意:

1 int main()
第2行的變數a是個暫存器變數。

bash之變數型別 數字變數型別

1.4變數型別 變數型別有 數字 字串 布林 陣列 函式 變數的使用 a 1 定義變數a b hello wrod 定義變數b echo a 輸出變數a的值 輸出 1 echo b 輸出變數b的值 輸出 hello wrod c b b 雙引號可以加變數 輸出 b hello wrod c b b ...

1 4資料型別(dict)

字典建立 字典的鍵值對用冒號分割,每對之間用逗號分割,整個字典用花括號中,鍵值唯一,不可變,可以為字串,數字或元祖。例如 first dict 字典訪問 將相應的鍵放入方括號裡作為索引,例如 first dict first dict abc 字典修改 可以向字典新增新的鍵值對,修改鍵值,例如 fi...

php變數與變數型別

型別轉換 1 intval 轉化為int型別 並不是四捨五入 a 1.5 b intval a c 0.9 d 1.3333 echo b echo intval c echo intval d 列印結果為 1 012 floatval 轉化成實數型別 a 1 echo gettype a b fl...