06 C++中变量的作用域

系列文章目录

06 C++中变量的作用域


目录

系列文章目录

文章目录

前言

一、局部变量

二、全局变量

三、块作用域变量

总结


前言

C++中变量的作用域指的是变量可以被访问的范围,即变量在程序中存在的有效范围。不同作用域的变量具有不同的可见性和生命周期。

在C++中,变量可以声明在不同的作用域,包括全局作用域、函数作用域和代码块作用域,也是全局变量、形式参数和局部变量。下面让我们来一起了解一下。


一、局部变量

  • 局部变量是在程序中定义在一个函数、代码块或语句中的变量。
  • 这个变量只在它所定义的函数、代码块或语句中可见,出了这个范围就不能再访问这个变量。
  • 局部变量通常是在函数或代码块内部声明的,只在其所在的函数或代码块中使用,一般用于存储临时性的数据。
  • 在函数或代码块执行完毕后,局部变量的值将不再保留。

下面是代码展示: 

#include 
using namespace std;

int main()
{
	// 局部变量声明
	int a, b;

	// 实际初始化
	a = 10;
	b = 20;

	cout << a + b << endl;

	return 0;
}

输出结果是:30 

二、全局变量

全局变量是指在程序中可以被任何函数或模块访问的变量,它们一般定义在程序的顶层,即在任何函数或模块之外。

全局变量的作用域是整个程序,因此在任何地方都可以使用它们,并且在程序的运行期间都保持不变。全局变量在一些情况下非常方便,但过多的使用全局变量会使程序变得松散,难以维护和调试,因此程序员应该谨慎使用全局变量,尽可能使用局部变量来提高程序的可读性和可维护性。

下面是代码示例:

#include 
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 
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++中,变量可以声明在不同的作用域,包括全局作用域、函数作用域和代码块作用域。全局作用域中的变量可以在整个程序中被访问,函数作用域中的变量只能在函数内访问,且在函数执行完毕后就会被销毁,代码块作用域中的变量只能在代码块内部访问,且在代码块执行完毕后就会被销毁。

同一个作用域中,变量名不能重复,如果重复会导致编译错误。如果在不同的作用域中,可以使用相同的变量名,但是它们是不同的变量,不会相互影响。

你可能感兴趣的:(C++入门,c++,开发语言,windows,visual,studio,学习)