运行结果?

yaya__ 2009-06-25 09:51:46
以下程序的运行结果是 。
#include<stdio.h>
void inc ()
{ static int x=0;
x+=2;
printf("%d",x);
}
void main()
{ inc (); inc ();
}


还有为什么?
...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxfeng112 2009-06-25
  • 打赏
  • 举报
回复
24
先输出2,又输出4,中间没有空格,也没换行,你看到的就好像是一个数24。
静态变量分配的空间不在栈上,所以函数退出以后它不会被释放掉,还保留上次使用完的结果,而下次再引用的时候,它也不会被初始化,即第二次调用inc()的时候static int x=0;不会被执行。
AcCgy213 2009-06-25
  • 打赏
  • 举报
回复
2和4啊...
yaya__ 2009-06-25
  • 打赏
  • 举报
回复
嗯嗯!谢啦![Quote=引用 1 楼 w0911h 的回复:]
2 4
static变量的值在函数结束后仍然保留,下次调用该函数不会重新赋值
[/Quote]
Walf_ghoul 2009-06-25
  • 打赏
  • 举报
回复
2 4
static是静态变量,在程序第一次访问它时建立初始化,第二次访问时并不再次初始话,使用的是已有的值,当程序结束时才销毁。所以得到的结果是2,4.
bfhtian 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 w0911h 的回复:]
2 4
static变量的值在函数结束后仍然保留,下次调用该函数不会重新赋值
[/Quote]
up
w0911h 2009-06-25
  • 打赏
  • 举报
回复
2 4
static变量的值在函数结束后仍然保留,下次调用该函数不会重新赋值

69,373

社区成员

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

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