了解作用範圍在 C 語言中的定義與運作方式。

在 C 語言程式中,當你宣告一個變數時,其作用範圍會根據你宣告的位置而有所不同。

這表示該變數在某些地方可用,但在其他地方則無法存取。

根據位置,變數可分為兩種類型:

  • 全域變數
  • 區域變數

以下是宣告於函式內部的區域變數範例:

int main(void) {
 int age = 37;
}

區域變數只能在函式內部存取,當函式結束時,它們將停止存在。它們會被從記憶體中釋放(但有些例外情況)。

而若在函式外部宣告的變數則為全域變數,像是以下範例:

int age = 37;

int main(void) {
 /* ... */
}

全域變數可在程式的任何函式中存取,並且在程式執行期間一直可用,直到結束。

我提到區域變數在函式結束後將不再可用。

這是因為預設情況下,區域變數是在堆疊(stack)上宣告的,除非你使用指標將其顯式配置於堆積中,但這樣你就得自行管理記憶體。