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

初始化本地和全局变量

当定义一个本地变量时,系统不会自动初始化它,你必须自己初始化它。定义全局变量时,系统会在你定义它时自动进行初始化,方法如下:

Data Type Initializer
int 0
char ‘\0’
float 0
double 0
pointer NULL

正确初始化变量是一个良好的编程实践,否则有时程序会产生意想不到的结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程