static 变量的问题

xeniums 2006-01-08 09:54:45
以下两个定义为什么不一样
定义一:
static int k = 0;
//这样函数结束后不释放k的内存

定义二:
static int k;
k = 0;
//和普通变量没什么区别了
...全文
108 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cunsh 2006-01-08
  • 打赏
  • 举报
回复
void f(){
static int k = 0;
cout << ++k << endl;
}

int main()
{
f();
f();
return 0;
}

//输出 1 2

void f(){
static int k;
k = 0;
cout << ++k << endl;
}

int main()
{
f();
f();
return 0;
}
//输出 1 1
cunsh 2006-01-08
  • 打赏
  • 举报
回复
定义一:
static int k = 0;
//这样函数结束后不释放k的内存

定义二:
static int k;
k = 0;
//和普通变量没什么区别了

在一个函数中这样写.效果是不一样的.楼主试试.
Paripatetic 2006-01-08
  • 打赏
  • 举报
回复
static和普通变量区大了

普通变量离开作用域后被释放

而static运行于整个程序中

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧