所有的資料都有兩種型別
(1)資料型別: : 如 int,float 等。
(2)儲存型別: : 總共有四種儲存型別的變數,分別為自動變數(auto)、靜態變數(static)、外部變數(extern)以及暫存器變數(register)。
1、o auto - - 函式中所有的非靜態區域性變數。
2、 register - - 一般經常被使用的的變數(如某一變數需要計算幾千次)可以設定成暫存器變數register 變數會被儲存在暫存器中,計算速度遠快於存在記憶體中的非 register 變數。
3、 static - - 在變數前加上 static 關鍵字的變數。
4、 extern - - 把全域性變數在其他原始檔中宣告成 extern 變數,可以擴充套件該全域性變數的作用域至宣告的那個檔案,其本質作用就是對全域性變數作用域的擴充套件。
主cpp原始檔(命名main)如下:
#include
#include
#include
#include
using namespace std;
extern
int extern_value;
static
int zeng_yong=24;
//全域性靜態變數
//int zeng_yong= 30;
//暫存器變數
void
register_demo()
printf
("&j:0x%p\n"
,&j)
;//c++ 的register 關鍵字已經優化,如果我們列印它的位址,它就變成了普通的auto變數。
printf
("register_demo - register_demo:%d\n"
, zeng_yong);}
//區域性靜態變數
void
static_demo()
//外部變數
void
extern_demo()
intmain
(void
)
次cpp原始檔(命名extern_demo)(必須新增否則會報錯)如下:
#include
int extern_value =
8888
;
變數的作用域和生存週期
注:「快」表示在定義函式裡的範圍。
C C 語言中的變數的4種儲存型別
用來指明變數的儲存位置,即執行該變數在哪一段分配記憶體空間,常見的儲存位置有auto extern register static,在一段執行程式中,可以為變數分配儲存空間的有bss bss段 bsssegment 通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文blocks...
C語言中變數的儲存型別
變數的儲存型別 storage class 是指儲存變數值的記憶體型別。有三個地方可以用於儲存變數 普通記憶體 執行時堆疊 硬體暫存器 用於宣告變數儲存型別的關鍵字 auto static register 在所有 塊之外的變數的預設儲存型別是靜態的 static 儲存於靜態記憶體中,稱為靜態 st...
C C 中變數的儲存型別
變數可能存放在三個位置 普通記憶體 靜態儲存區 程式執行堆疊 硬體暫存器。在函式體外定義的和在函式體內定義的並宣告為static型別的儲存在靜態儲存區中,在程式執行之前建立,在程式退出後銷毀。在函式體內定義的預設為 auto 自動變數,儲存在堆疊中,函式返回後,這些變數被銷毀。關鍵字register...