例:
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,而沒有加::的表示,選擇宣告比較近的那一個
沒有留言:
張貼留言