C语言之Static三大作用之一——修饰局部变量

发布时间:2024年01月21日

Static修饰的局部变量,即为内存静态区的局部变量,何为内存?针对初学者而言,内存主要有三大区域构成,分别是栈区、堆区、静态区。栈区主要是存放临时属性的变量,如局部变量(普通的 未被修饰的)、函数的形式参数。我们知道所有编译时候或者是你想要在电脑上面运行程序相关的,基本上要在内存上开辟空间,堆区主要是动态内存管理,包括malloc、free、calloc、realloc...静态区包括存放静态变量和全局变量(生命周期较长)。

栈区特点:存放临时属性的变量 生命周期较短(进入函数开创内存空间,出函数销毁并释放内存空间);

堆区特点:动态内存管理;

静态区特点:变量的生命周期会变长,但是作用域不会改变,和原来保持一致。

static修饰之后的变量i 会存放在内存的静态区,生命周期会变长和全局变量的生命周期类似,但是作用域不会改变,保持原来。

回顾一下:main函数是程序的入口,程序自上而下进行读取执行命令,涉及调用函数,注意其作用于和生命周期的具体发生情形,未被修饰的局部变量在栈区,进入test函数是被创建,出去就会立刻被销毁,生命周期短暂,生命周期和作用域 作用时间紧密相连;若是被static修饰之后,局部变量i变成静态变量i 存放于静态区,作用时间(生命周期)变长,但并未改变其所用域。

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