当前位置:新励学网 > 秒知问答 > C语言静态局部变量和全局变量有什么区别

C语言静态局部变量和全局变量有什么区别

发表时间:2024-07-28 00:45:21 来源:网友投稿

静态变量就是在定义的时候,有static 修饰的变量,形式为static TYPE var_name = init_value;而动态变量,形式为TYPE var_name = init_value;即没有static 修饰。其中的=init_value均可省略。区分定义在函数外的全局变量,和函数内的局部变量,作用域,生命周期,及无显式初始化时的初始值,均有区别。

1 动态全局变量:作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量。生命周期为从程序运行到程序退出,即贯穿整个运行时间。无显式初始化时默认初始化值为0。

2 静态全局变量:作用域为当前文件,从定义/声明位置到文件结尾。生命周期为从程序运行到程序退出,即贯穿整个运行时间。无显式初始化时默认初始化值为0。

3 动态局部变量:作用域为当前函数,从定义位置,到其所在的{}的结束位置。生命周期为从函数调用到函数退出。无显式初始化时默认初始化值为随机值。

4 静态局部变量:作用域为当前函数,从定义位置,到其所在的{}的结束位置。生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化,而是沿用上次函数退出时的值。无显式初始化时默认初始化值为0。

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!