乙個變數除了資料型別以外,還有3種屬性:
(1)儲存類別:c++允許使用auto,static,register,extern4種儲存類別
函式中的區域性變數,如果不加static宣告,預設就是自動變數
靜態區域性變數
靜態外部變數
(2)作用域:指在程式中可以引用該變數的區域
(3)儲存期:指變數在記憶體中的儲存週期
下面從不同角度分析它們之間的聯絡:
如果乙個變數在某檔案或函式範圍內是有效的,則稱該檔案或函式為該變數的作用域,在此作用域內可以引用該變數,所以又稱變數在此作用域內「可見」,這種性質稱為變數的可見性。
存在性指變數沒有被銷毀,在其儲存期內,是存在的
變數儲存類別
函式內函式外
作用域(可見性)
存在性作用域(可見性)
存在性自動變數和暫存器變數√√
××靜態區域性變數√√
×√靜態外部變數√√
√(只限本檔案)
√外部變數√√
√√static宣告使變數採用靜態儲存方式,但它對區域性變數和全域性變數所起的作用不同。對區域性變數來說,static使變數由動態儲存方式改變為靜態儲存方式;而對全域性變數,它使變數區域性化(侷限於本檔案),但仍為靜態儲存方式。從作用域角度看,凡有static宣告的,其作用域都是侷限的,或者侷限於本函式內(靜態區域性變數),或者侷限於本檔案內(靜態外部變數)。
變數屬性的總結
變數的屬性有五種 1 名字 必須顯示說明 2 型別 必須顯示說明 3 儲存類別 預設方式或顯示說明 使用 auto register static extren 4 作用域 由儲存類別決定 5 生存期 由儲存類別決定 前兩種不必解釋了,顧名思義。下面詳細區分後三種概念 定義 指系統對變數儲存方式的規...
C 變數屬性大總結
乙個變數除了資料型別以外,還有3種屬性 儲存類別 c 允許使用auto,static,register和extern 4種儲存類別。作用域 指程式中可以引用該變數的區域。儲存期 指變數在記憶體的儲存期限。以上3種屬性是有聯絡的,程式設計者只能宣告變數的儲存類別,通過儲存類別可以確定變數的作用域和儲存...
條件變數屬性 時鐘屬性
條件變數有兩個屬性 程序共享屬性 時鐘屬性。1 程序共享屬性 條件變數與互斥量的共享屬性的用法一樣 int pthread condattr init pthread condattr t attr int pthread condattr destroy pthread condattr t at...