静态局部变量

/* 静态本地变量

在本地变量定义时加上static修饰符就成为静态本地变量

当函数离开的时候,静态本地变量会继续存在并保持其值

静态本地变量的初始化只会在第一次进入这个

函数时做,以后进入这个函数时会保持上次离开时的

值

*/

#include<stdio.h>

int f(void);

int gAll=12;

int main(int argc, char const *argv[])

{

f();

return 0;

}

int f(void)

{

int k=0;

static int all=1;

printf("&gAll=%p\n",&gAll);

printf("&all=%p\n",&all);

printf("&k=%p\n",&k);

printf("in %s all=%d\n",__func__,all);

all+=2;

printf("agn in %s all=%d\n",__func__,all);

return gAll;

}

/*

静态本地变量 实际上是特殊的全局变量

他们位于相同的内存区域

静态本地变量具有全局的生存期,函数内的

局部作用域

static在这里的意思是局部作用域(本地可访问)

*/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容