静态本地变量(二)
//静态本地变量
#pragma warning(disable : 4996)
#include <iostream>
#include<stdio.h>
int gAll = 12;
//在本地变量定义时加上static修饰符就会成为静态本地变量
//当函数离开的时候,静态本地变量会继续存在并保持其值
//静态本地变量的初始化只会在第一次进入这个函数的时候做以后进入函数会保持上次离开时的值
int f(void);
int main() {
f();
return 0;
}
int f(void) {
int k = 0;
int m = 5;
static int all = 1;
printf("&gAll = %p\n", &gAll);
printf("&all = %p\n", &all);
printf("&k = %p\n", &k);
printf("&m = %p\n", &m);
printf("in %s all = %d\n", __func__, all);
all += 2;
printf("agn in %s gall = %d\n", __func__,all);
/*-------------------------
&gAll = 0109B038
&all = 0109B03C
&k = 0037FCBC
&m = 0037FCB0
in f all = 1
agn in f gall = 3
-------------------------------*/
//由以上结果可以得出如下结论
//静态本地变量实际上是特殊的全局变量
//他们位于相同的内存区域
//静态本地变量具有全局变量的生存期,函数内的局部作用域
//static 在这里的意思是局部作用域(本地可访问)
return all;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构