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

块作用域的静态变量

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

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

示例代码:

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

#include <iostream>

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();
	}
}

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WendyWJGu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值