系列文章目录
06 C++中变量的作用域
目录
系列文章目录
文章目录
前言
一、局部变量
二、全局变量
三、块作用域变量
总结
前言
C++中变量的作用域指的是变量可以被访问的范围,即变量在程序中存在的有效范围。不同作用域的变量具有不同的可见性和生命周期。
在C++中,变量可以声明在不同的作用域,包括全局作用域、函数作用域和代码块作用域,也是全局变量、形式参数和局部变量。下面让我们来一起了解一下。
一、局部变量
- 局部变量是在程序中定义在一个函数、代码块或语句中的变量。
- 这个变量只在它所定义的函数、代码块或语句中可见,出了这个范围就不能再访问这个变量。
- 局部变量通常是在函数或代码块内部声明的,只在其所在的函数或代码块中使用,一般用于存储临时性的数据。
- 在函数或代码块执行完毕后,局部变量的值将不再保留。
下面是代码展示:
#include <iostream>
using namespace std;int main()
{// 局部变量声明int a, b;// 实际初始化a = 10;b = 20;cout << a + b << endl;return 0;
}
输出结果是:30
二、全局变量
全局变量是指在程序中可以被任何函数或模块访问的变量,它们一般定义在程序的顶层,即在任何函数或模块之外。
全局变量的作用域是整个程序,因此在任何地方都可以使用它们,并且在程序的运行期间都保持不变。全局变量在一些情况下非常方便,但过多的使用全局变量会使程序变得松散,难以维护和调试,因此程序员应该谨慎使用全局变量,尽可能使用局部变量来提高程序的可读性和可维护性。
下面是代码示例:
#include <iostream>
using namespace std;// 全局变量声明
int a, b;
int c = 5;int main()
{// 局部变量声明// int a, b;float c = 3.2;// 实际初始化a = 10;b = 20;cout << a + b << endl;cout << c << endl;return 0;
}
输出结果是: 30 3.2
注意:在程序中,局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。注意上面示例中,c的值。
三、块作用域变量
- 块作用域变量是在代码块中声明的变量,其作用域仅限于该代码块内部。
- 这意味着只有在该代码块内部才能访问和使用该变量,在代码块外部将无法访问该变量。
- 块作用域变量可以避免变量名称冲突和意外的变量赋值,从而提高程序的可读性和可维护性。
代码示例如下:
#include <iostream>
using namespace std;int main()
{// 局部变量声明int a, b;// 实际初始化a = 10;b = 20;{int a = 20;int b = 30;cout << a + b << endl;}cout << a + b << endl;return 0;
}
输出结果是:50,30;
总结
在C++中,变量可以声明在不同的作用域,包括全局作用域、函数作用域和代码块作用域。全局作用域中的变量可以在整个程序中被访问,函数作用域中的变量只能在函数内访问,且在函数执行完毕后就会被销毁,代码块作用域中的变量只能在代码块内部访问,且在代码块执行完毕后就会被销毁。
同一个作用域中,变量名不能重复,如果重复会导致编译错误。如果在不同的作用域中,可以使用相同的变量名,但是它们是不同的变量,不会相互影响。