HOME ABOUT CONTACT

C/C++教學: 第四之一課 - 區域和全域變數

Rain July 24, 2024
Outline

1. 簡介

2. 區域變數

3. 全域變數

4. 注意事項

簡介top

在介紹完變數和資料型態之後,這邊先來介紹一下什麼是區域變數,什麼是全域變數。
我們知道變數就是一個具有名稱的資料,讓我們在撰寫程式碼時,可以輕鬆指定要對哪一個資料進行處理運算,那麼變數只要定義完之後,就可以隨處指定調用了嗎?
當然不是這樣的,每個變數都有其有效範圍,因此變數被分成兩種,一種是區域變數,另一種則是全域變數。

區域變數top

所謂的區域變數是指所有架構內宣告的變數,都叫做區域變數,它的有效範圍只限定在該架構內,在架構以外的地方都不能調用到該變數。
而架構指的是所有有用大括號來涵蓋範圍的,例如if - else if - else架構、swtich架構、迴圈架構、函式等等。


if (condition) {
    int a; // 這裡的變數a即為區域變數
}
                        

void main (int argc, char* argv[]) {
    int a; // 這裡的變數a即為區域變數
}
                        

全域變數top

全域變數是指不被任何架構涵蓋的變數,它的有效範圍是所有架構內都可以調用。


#include
int a = 0; // 這裡的變數a即為全域變數

void main (int argc, char* argv[]) {
    // do something ...
}
                        

注意事項top

你可能會有疑問,如果全域變數和區域變數的名稱是一樣的會如何呢?
答案是架構內調用的變數會變成是區域變數,而非全域變數,如下範例。


#include
int a = 0; // 這裡的變數a即為全域變數

void main (int argc, char* argv[]) {
    int a = 1;
    std::cout << "a = " << a << std::endl; // 這裡調用的會是區域變數a,因此打印出來的值會是1,而不是0
}
                        

下一篇: 第五課 - 算術運算

Last updated:

Related Artical List

  1. C/C++教學: 第三課 - Hello World
  2. C/C++教學: 第四課 - 變數和資料型態
  3. C/C++教學: 第五課 - 算術運算

Article List