位置:首頁 > 高級語言 > C++教學 > C++變量的作用域

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

這是一個良好的編程習慣正確初始化變量,否則程序有時會產生意想不到的結果。