C/C++中静态全局变量与静态局部变量

  • Post author:
  • Post category:其他




静态全局变量与静态局部变量的区别

  • 全局变量使用static来修饰,不会改变变量的存储位置,但是会改变全局变量的作用域,仅在当前文件可用
  • 局部变量使用static来修饰,会改变变量的存储位置,但不会改变局部变量的作用域。



普通全局变量与局部变量重名时

分别访问全局变量与局部变量的方法

#include <iostream>
using namespace std;

int a = 20;
int main(int argc, char *argv[])
{
	int a = 10;
	{
		extern int a;
		cout << a << endl;	//输出为20,这里访问到的是全局变量
	}
	return 0;
}



静态全局变量与静态局部变量重名时

分别访问静态全局变量与静态局部变量的方法

#include <iostream>
using namespace std;

static int a = 20;
int main(int argc, char *argv[])
{
	static int a = 10
	cout << ::a << endl;//20
	cout << a << endl;	//10
	return 0;
}



版权声明:本文为emile233原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。