返回

关于关键字static的使用

发布时间:2023-02-03 04:40:25 307

static改变了变量的作用域,在全局变量中使用时,会锁定该全局变量,使其只能在自己所在的源文件使用。

如下,若不加static,全局变量在不同源文件间可通用。

int a = 2
(first.c)
int main()
{
printf("%d\n",a);
}(second.c)

如下,如果加static,全局变量便不可通用

static int a = 2
(first.c)
int main()
{
printf("%d\n",a);
}(second.c)

而在局部变量中,static使局部变量的生命周期变长。

即在使用完一次局部变量后不进行销毁。

如不加static,结果输出五个a=2

void test()
{
int a = 1;
a++;
printf("a=%d\n",a);
}

int main()
{
int i = 0;
while (i<5)
{
test();
i++;
}
else
return 0;
}

如加static,结果输出a=2到6

void test()
{
static int a = 1;
a++;
printf("a=%d\n",a);
}

int main()
{
int i = 0;
while (i<5)
{
test();
i++;
}
else
return 0;
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线