C++變量的作用域
作用域範圍是程序的區域,並從廣義上說有三個地方可以變量聲明:
-
內部函數或被稱為局部變量
-
形式參數 - 函數的參數的定義
-
所有函數外的稱為全局變量
我們將學習什麼是函數和參數後續章節中。下麵就讓我們來解釋一下什麼是局部和全局變量。
局部變量:
這是一個函數或塊內聲明的變量是局部變量。它們隻能由屬於該函數或代碼塊內部的語句中使用。局部變量是不知道自己在外的功能。下麵是使用局部變量的例子:
#include <iostream> using namespace std; int main () { // Local variable declaration: int a, b; int c; // actual initialization a = 10; b = 20; c = a + b; cout << c; return 0; }
全局變量:
全局變量在所有函數外定義,通常在程序的頂部。全局變量將持有整個項目的生命期值。
全局變量可以被任何函數訪問。也就是說,全局變量可以在整個程序它的聲明之後使用。下麵是使用全局和局部變量的例子:
#include <iostream> using namespace std; // Global variable declaration: int g; int main () { // Local variable declaration: int a, b; // actual initialization a = 10; b = 20; g = a + b; cout << g; return 0; }
一個程序局部和全局變量的名稱可以相同,但局部變量的值在函數內部將優先采用。例如:
#include <iostream> using namespace std; // Global variable declaration: int g = 20; int main () { // Local variable declaration: int g = 10; cout << g; return 0; }
讓我們編譯和運行上麵的程序,這將產生以下結果:
10
初始化局部和全局變量:
當局變量被定義,它不是由係統初始化,而是用戶必須自己初始化。全局變量是由當它們定義為如下係統自動初始化:
數據類型 | 初始化 |
---|---|
int | 0 |
char | '\0' |
float | 0 |
double | 0 |
yiibaier | NULL |
這是一個良好的編程習慣正確初始化變量,否則程序有時會產生意想不到的結果。