Skop pembolehubah C++


Skop ialah kawasan program Secara umumnya, terdapat tiga tempat di mana pembolehubah boleh diisytiharkan:

  • Pembolehubah diisytiharkan di dalam fungsi atau. blok kod, dipanggil pembolehubah tempatan.

  • Pembolehubah yang diisytiharkan dalam takrifan parameter fungsi dipanggil parameter formal.

  • Pembolehubah yang diisytiharkan di luar semua fungsi dipanggil pembolehubah global.

Kita akan belajar apakah fungsi dan parameter dalam bab seterusnya. Dalam bab ini, kami mula-mula menerangkan pengisytiharan pembolehubah tempatan dan pembolehubah global.

Pembolehubah setempat

Pembolehubah yang diisytiharkan di dalam fungsi atau blok kod dipanggil pembolehubah tempatan. Ia hanya boleh digunakan oleh pernyataan di dalam fungsi atau blok kod. Contoh berikut menggunakan pembolehubah tempatan:

#include <iostream>
using namespace std;
 
int main ()
{
  // 局部变量声明
  int a, b;
  int c;
 
  // 实际初始化
  a = 10;
  b = 20;
  c = a + b;
 
  cout << c;
 
  return 0;
}

Pembolehubah global

Pembolehubah yang ditakrifkan di luar semua fungsi (biasanya di kepala program) dipanggil pembolehubah global. Nilai pembolehubah global adalah sah sepanjang kitaran hayat program.

Pembolehubah global boleh diakses oleh mana-mana fungsi. Dalam erti kata lain, sebaik sahaja pembolehubah global diisytiharkan, ia tersedia sepanjang keseluruhan program. Contoh berikut menggunakan pembolehubah global dan pembolehubah tempatan:

#include <iostream>
using namespace std;
 
// 全局变量声明
int g;
 
int main ()
{
  // 局部变量声明
  int a, b;
 
  // 实际初始化
  a = 10;
  b = 20;
  g = a + b;
 
  cout << g;
 
  return 0;
}

Dalam program, nama pembolehubah tempatan dan pembolehubah global boleh sama, tetapi dalam fungsi, nilai pembolehubah tempatan akan mengatasi nilai pembolehubah global. Berikut ialah contoh:

#include <iostream>
using namespace std;
 
// 全局变量声明
int g = 20;
 
int main ()
{
  // 局部变量声明
  int g = 10;
 
  cout << g;
 
  return 0;
}

Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut:

10

Memulakan pembolehubah tempatan dan pembolehubah global

Apabila pembolehubah tempatan Apabila ditakrifkan, sistem tidak akan memulakannya, anda mesti memulakannya sendiri. Apabila mentakrifkan pembolehubah global, sistem akan secara automatik memulakan pembolehubah tersebut kepada nilai berikut:

数据类型初始化默认值
int0
char''
float0
double0
pointerNULL

Ia adalah tabiat pengaturcaraan yang baik untuk memulakan pembolehubah dengan betul, jika tidak, atur cara kadangkala boleh menghasilkan hasil yang tidak dijangka.