/*局部变量与静态局部变量的区别*/

发布时间:2024年01月20日

/*局部变量与静态局部变量的区别*/


//局部变量int a与静态局部变量static int b

#include <stdio.h>
#include <string.h>

void fun(void)
{
?? ?int a=0;
?? ?static int b=0;
?? ?
?? ?a++;
?? ?b++;
?? ?printf("局部变量a:%d\n",a);
?? ?printf("静态局部变量b:%d\n\n",b);
}

int main()
{?? ?
?? ?fun();
?? ?fun();
?? ?fun();
?? ?
}


/*编译结果:


局部变量a:1
静态局部变量b:1

局部变量a:1
静态局部变量b:2

局部变量a:1
静态局部变量b:3
*/

//结论:


/*
(1)局部变量从调用函数开始申请空间直到被调用函数结束释放空间
(2)静态局部变量从调用函数开始申请空间直到工程结束才释放空间,且只有第一次定义是才会被赋值,之后调用直接用上次调用保存的结果。
(3)局部变量位于栈区,静态局部变量位于全局静态区。
(4)静态局部变量拥有全局变量的生命周期,与局部变量的使用范围。
*/

文章来源:https://blog.csdn.net/qq_45821285/article/details/135684871
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。