c语言中 函数调用结束后,函数内定义的静态变量所占用的空间被释放 这句话正确吗?求解释

c语言中函数调用结束后,函数内定义的静态变量所占用的空间被释放这句话正确吗?求解释... c语言中 函数调用结束后,函数内定义的静态变量所占用的空间被释放 这句话正确吗?求解释 展开
 我来答
懒得理你ing
2014-09-07 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:28万
展开全部
不正确,函数内的静态变量在该函数调用结束后,且该函数所在的模块没有被释放的情况下,这个静态变量值为上次函数调用后的值。这样说比较抽象。举例说明一下:

void AA()
{
static int s_iCount; //C语言默认初始化0值
s_iCount++; //每调用AA()一次,s_iCount会自加一次
printf("%d\n", s_iCount);
}

void main()
{
AA(); //第一次调用
AA(); //第二次调用
}

运行输出:
1
2

说明:AA()中的 s_iCount,只能在AA()中访问操作,不能在其外的函数中操作,也不能在main()中直接访问。
百度网友7e3e973
2014-09-07
知道答主
回答量:36
采纳率:0%
帮助的人:11.3万
展开全部
不对,局部静态变量的生存期是第一次到这个局部变量定义的时候到整个程序结束,在函数里面就是第一次调用这个函数执行到生命的语句开始,一直到程序结束。你可以说是那个变量你访问不到,但是空间还在,也就是你下次在调用这个函数的时候,他的空间还在,所以,以后调用函数声明的语句是不会执行的~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2014-09-07 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3276万
展开全部
错。静态变量所占用的空间会一直保留到整个程序的结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式