了解作用範圍在 C 語言中的定義與運作方式。
在 C 語言程式中,當你宣告一個變數時,其作用範圍會根據你宣告的位置而有所不同。
這表示該變數在某些地方可用,但在其他地方則無法存取。
根據位置,變數可分為兩種類型:
- 全域變數
- 區域變數
以下是宣告於函式內部的區域變數範例:
int main(void) {
int age = 37;
}
區域變數只能在函式內部存取,當函式結束時,它們將停止存在。它們會被從記憶體中釋放(但有些例外情況)。
而若在函式外部宣告的變數則為全域變數,像是以下範例:
int age = 37;
int main(void) {
/* ... */
}
全域變數可在程式的任何函式中存取,並且在程式執行期間一直可用,直到結束。
我提到區域變數在函式結束後將不再可用。
這是因為預設情況下,區域變數是在堆疊(stack)上宣告的,除非你使用指標將其顯式配置於堆積中,但這樣你就得自行管理記憶體。