C/C++ 块作用域的静态变量static的应用

块作用域的静态变量

        静态变量(static variable)听起来自相矛盾,像是一个不可变的变量。实际上,静态的意思是该变量在内存中原地不动,并不是说它的值不变。具有文件作用域的变量自动具有(也必须是)静态存储器。创建的具有静态存储期、块作用域的局部变量。这些变量和自动变量一样,具有相同的作用域,但是程序离开它们所在的函数后,这些变量不会消失。也就是说,这种变脸那个具有块作用域、无连接。但是具有静态存储期。计算机在多次函数调用之间会记录它们的值。在块中(提供块作用域和无连接)以存储类别说明符static(提供静态存储期)声明这种变量。

        “局部静态变量”是描述具有块作用域的静态变量的另一个术语。这种存储类别也被成为内部静态存储类别(internal static storage class)。这里的内部指的是函数内部。

示例代码:

// Len_static.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include 

void BlockStatic()
{
	int nDataNormal = 0;
	static int nDataStatic = 0; // 块作用域的静态变量

	nDataNormal++;
	nDataStatic++;

	printf("nDataNormal=%d, nDataStatic=%d\n", nDataNormal, nDataStatic);
}
int main()
{
	for (int i = 0; i < 10; i++)
	{
		BlockStatic();
	}
}

执行结果:

C/C++ 块作用域的静态变量static的应用_第1张图片

你可能感兴趣的:(C/C++学习,开发语言,c++,算法,c语言)