2008年12月26日 星期五

全域變數

區域變數就是只能在一個區塊中被使用
例:

void foo1(){
int x=4;
cout << x << endl;
}

void foo2(){
cout << x << endl; // 出現錯誤
}

以上這一個例子的x就是區域變數,只能在foo1()內使用而不能在foo2()內使用。

而全域變數的例子呢

int x=4;
void foo1(){
cout << x << endl;
}

void foo2(){
cout << x << endl;
}

而以上的例子的x可以在foo1()與foo2()使用,而這就是全域變數。


#include <iostream>
#include <string>
using namespace std;

string color("red");

void local();

int main()
{
  extern string color; // 告知這一個變數宣告在別處,這裡是可以省略的,因為是在同一個檔案,若string color("red");是在其它檔案,而且我們沒有include進來,則這一行就是必要的
  cout << "Global color: " << color << endl;
  local();
  return 0;
}

void local()
{
  string color("blue");
  cout << "Local color: " << color << endl;
  cout << "Global color: " << ::color << endl;
}

透過::運算子告知,我要全域變數的color,而沒有加::的表示,選擇宣告比較近的那一個

沒有留言: