回覆列表
  • 1 # hzalk25443

    變數的類別:根據作用域可分為全域性變數和區域性變數。根據生存週期可分為靜態儲存方式和動態儲存方式,具體地又分為自動的(auto)、靜態的(static)、暫存器的(register)、外部的(extern)。靜態儲存方式是指在程式執行期間分配固定的儲存空間的方式,動態儲存方式是在程式執行期間根據需要進行動態的分配儲存空間的方式。每一個變數均有作用域和儲存類別兩個屬性,這些屬性共同用於描述一個變數,這些不同型別的變數與儲存位置的關係如下:外部變數(全域性變數)、靜態外部變數、靜態區域性變數儲存在靜態儲存區。自動區域性變數(區域性變數預設為自動區域性變數)、函式形參儲存在動態儲存區,不論是靜態儲存區還是動態儲存區均屬於記憶體中的使用者區。但是,暫存器變數是儲存在CPU暫存器中的而不是記憶體中。首先說明一下與作用域相關的幾個屬性:區域性變數:在一個函式內部定義的變數是內部變數,它只在本函式範圍內有效,也就是說只有在本函式內才能使用它們,在此函式以外是不能使用這些變數的,這種型別的變數就稱為“區域性變數”。全域性變數:在函式外定義的變數,可以為本原始檔中其它函式所公用,有效範圍為從定義變數的位置開始到本原始檔結束,這種型別的變數就稱為“全域性變數”。接下來說明一下與儲存型別相關的幾個屬性:atuo:在宣告區域性變數時,若不指定 static,預設均是 auto,這類變數都是動態分配儲存空間的,資料儲存在動態儲存區中。static:在宣告區域性變數時,使用關鍵字 static 將區域性變數指定為“靜態區域性變數”,這樣在函式呼叫結束後不消失而保留原值,即佔用的儲存單元不釋放,在下一次函式呼叫時,該變數已有值就是上次函式呼叫結束時的值。register:在宣告動態區域性變數或者函式形參時,可將變數宣告為register,這樣編譯系統就會為變數分配一個暫存器而不是記憶體空間,透過這種方式可提升對某些區域性變數頻繁呼叫的程式的效能。(暫存器運算速度遠高於記憶體)extern:用於擴充套件全域性變數的作用域,比如如果函式想引用一個外部變數,但該外部變數在該函式後定義,那麼這個函式需要使用 extern 來宣告變數,這樣才能使用在該函式後面定義的全域性變數。此外,extern 還可以在多檔案的程式中宣告外部變數。由於變數從不同維度劃分,形成了多種錯綜複雜的關係,在學習程式設計的時候需要重點關注。

  • 中秋節和大豐收的關聯?
  • 營業執照辦理流程-辦一個營業執照需要多少時間?辦一個營業執照?