静态存储持续性

本文介绍了在代码块中使用`static`关键字定义的静态局部变量。这种变量在代码块执行期间保持存在,即使代码块执行完毕,其值也会保留。通过示例代码展示了静态局部变量在多次调用函数时不会重新初始化,而是继续保留之前的值,这与普通局部变量形成鲜明对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无链接性的局部变量——将static限定符用于在代码块中定义的变量。

目录

一、在代码块中使用static

二、相关代码

总结


一、在代码块中使用static

        在代码块中使用static时,会使局部变量的存储持续性变为静态。也就是说,该变量只在该代码块中可以使用,但是当该代码块不活动时它依旧是存在的。因此在两次函数的调用之间,静态局部变量的值是保持不变的。如果初始化了静态局部变量,那么就只在程序启动时进行一次初始化,第二次再调用函数的时候将不会初始化。

二、相关代码

        如下代码中,count是for循环内部的局部变量,sta_count是for循环内部的静态局部变量,并且已经被初始化为0,那么在第二次进入for循环的时候将不会再一次进行初始化。

#include<iostream>
using namespace std;

void test02()
{
	for (int i = 0; i < 5; i++)
	{
		int count = 0;
		static int sta_count = 0;
		cout << "局部变量 count = " << count++ << endl;
		cout << "静态局部变量 sta_count = " << sta_count++ << endl;
		cout << endl;
	}
}

int main()
{
	test02();
	system("pause");
	return 0;
}

        运行结果如下图所示,从图中可以看出局部变量count并没有进行自加,并且每次输出都是0,而静态局部变量sta_count就像前面所说的,初始化一次之后不再初始化并且自加之后,静态局部变量sta_count的值将保持不变。

总结

        静态局部变量在代码块中初始化之后,再次运行该代码块静态局部变量将不会再一次初始化。并且再不运行该代码块的时候,其值也会保持不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值