C++ 变量作用域

来源:这里教程网 时间:2026-02-17 08:30:02 作者:

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 TypeInitializer
int0
char‘\0’
float0
double0
pointerNULL

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

相关推荐