c语言中静态变量是怎么用的

 我来答
仁昌爱娱乐
高粉答主

2020-02-03 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459842

向TA提问 私信TA
展开全部

c语言中静态变量作常量使用,用于存储常数。可用const,constant或final等关键字标识,其值就会在编译时设定,并且无法在运行时改变。编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区。

对于静态全局变量来说,针对某一源文件的以static声明的文件级变量与函数的作用域只限于文件内(只在文件内可见),也即“内部连接”,因而可以用来限定变量的作用域。

扩展资料:

在函数内以static声明的静态局部变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内),但存储空间是以静态分配而非默认的自动分配方式获取的,因而存储空间所在区域不同。

一般来说,静态分配时存储空间于编译时在程序数据段分配,一次分配全程有效;而自动分配时存储空间则是于调用栈上分配,只在调用时分配与释放,且两次调用间变量值始终保持一致;必须注意,静态局部变量只能初始化一次,这是由编译器来保证实现。

及采表含之
2019-07-25 · TA获得超过3661个赞
知道大有可为答主
回答量:3076
采纳率:29%
帮助的人:161万
展开全部
就是全局变量啊,比如如果需要计数然后那个函数需要一次次的被重新利用,那就需要静态变量了啊,静态变量不会因为局部函数被清空而清空而是会一直被保留
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想了解世界全貌
2012-05-14
知道答主
回答量:37
采纳率:0%
帮助的人:12.3万
展开全部
静态局部变量(静态变量)是在编译时赋初值的,即值赋初值一次,在程序运行时它已有初值,以后每次调用函数式不在重复赋初值而只在保留商城函数调用结束时的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weixyc
2012-05-13 · TA获得超过1129个赞
知道小有建树答主
回答量:763
采纳率:100%
帮助的人:491万
展开全部
使被调用函数调用结束后,被调用函数中的静态变量不会被释放,并保留上一次调用的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
剪影伤城
推荐于2017-12-16
知道答主
回答量:44
采纳率:0%
帮助的人:19万
展开全部
#include"stdio.h"
void main()
{
int f(int);
int a=2,i;
for(i=0;i<3;i++)
printf("%d ",f(a));
}

int f(int a)
{
auto int b=0; //aubo为自动变量的标志,则b为自动变量
static int c=3;//static 为静态局部变量的标志,则c为静态局部变量
b=b+1; //b为自动变量,则b一直等于1
c=c+1; //c为静态局部变量,则c随着for循环分别为4,5,6
return(a+b+c);
}
所以运行的结果为:7,8,9
注:静态局部变量(静态变量)是在编译时赋初值的,即值赋初值一次,在程序运行时它已有初值,以后每次调用函数式不在重复赋初值而只在保留商城函数调用结束时的值。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式