首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C中函数内部的静态变量如何使用?

C中函数内部的静态变量如何使用?
EN

Stack Overflow用户
提问于 2018-05-03 05:57:25
回答 2查看 0关注 0票数 0
void foo()
{
    static int x = 5;
    x++;
    printf("%d", x);
}

int main()
{
    foo();
    foo();
    return 0;
}
EN

回答 2

Stack Overflow用户

发布于 2018-05-03 14:48:08

这里有两个问题,生命周期和范围。

变量的作用域是可以看到变量名的地方。在这里,x只在函数foo()中可见。

变量的生存期是它存在的时间,如果x是在没有关键字静态的情况下定义的,那么它的生存期将从foo()的条目到foo()的返回;所以每次调用时都会将它重新初始化为5。

关键字静态的作用是将变量的生存期延长到程序的生存期;例如,初始化只进行一次和一次,然后在以后对foo()的所有调用中,变量保留其值--不管它是什么。

票数 0
EN

Stack Overflow用户

发布于 2018-05-03 15:06:35

输出6 7

void foo()
{
    static int x = 5; // assigns value of 5 only once
    x++;
    printf("%d", x);
}

int main()
{
    foo();// x = 6
    foo();// x = 7
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档