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

当 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);//若右子树不空,对右子树递归遍历
	}
}

发布了75 篇原创文章 · 获赞 52 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/WU2629409421perfect/article/details/100296035