static关键字用于变量声明的作用

本文探讨了static关键字在代码块内的变量声明中如何改变变量存储类型,使其成为静态变量,以及这种变量在程序执行过程中的特性。通过一个具体的二叉树带权路径长度(WPL)计算示例,展示了静态局部变量在整个程序运行期间保持状态的特点,同时限制了其作用域仅在定义它的函数内部。

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

当 static 关键字用于代码块内部的变量的声明时,用于修改变量的存储类型,即从自动变量修改为静态变量,但变量的链接属性和作用域不受影响。

用这种方式声明的变量在程序执行前创建,并在程序的整个执行期间一直存在,而不是每次在代码块开始执行时创建,在代码块执行完毕后销毁。

静态局部变量的生存周期虽然为整个程序,但其作用域与局部变量相同,即只能在定义改变量的函数内使用,退出函数后,尽管该变量还存在,但不能使用它。

基于先序遍历计算二叉树的带权路径长度:

int WPL(BiTree root){
	return wpl_PreOrder(root,0);
}
int wpl_PreOrder(Bitree root,int deep){
	static int wpl=0;//定义一个static变量存储wpl(带权路径长度)
	if(root->lchild==NULL&&root->rchild==NULL){//若为叶结点,累积wpl
		wpl+=deep*root->weight;//wpl加上该结点的深度与权值之积
	}
	if (root->lchild!=NULL) {
		wpl_PreOrder(root->lchild,deep+1);//若左子树不空,对左子树递归遍历
	}
	if (root->rchild!=NULL) {
		wpl_PreOrder(root->rchild,deep+1);//若右子树不空,对右子树递归遍历
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

九思梦鹿

喜欢,请记得点赞或赞赏哟

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

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

打赏作者

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

抵扣说明:

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

余额充值