static变量static变量存储在哪里

static变量  时间:2021-07-05  阅读:()

静态变量static的作用

static关键字在C语言中用于声明一个静态的局部变量。

作用: 有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。

这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。

用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。

静态变量是啥意思?和全局是一个概念吗

static变量意思是指在全局存储区中分配的变量,与全局变量是在一个存储区中分配的,区别于在堆栈中分配的变量 static变量仅仅在变量的作用范围内可见,而全局变量是在所有地方都可见的,这就是static变量与全局变量的区别 例如: int a; int func1() { static int b = 0; b++; return b; } int func2() { int c = 0; c++; return c; } int main() { a = 1; /* b = 1; */ printf("%d ", func1()); printf("%d ", func1()); printf("%d ", func2()); printf("%d ", func2()); } 其中a是全局变量,b是静态变量,而c是栈变量 a = 1;语句没有错 b = 1;出错,因为b只在函数func中可见 静态变量b从程序一运行即开始分配,到程序结束后才消失,而且static类型的变量只初始化一次,因此每运行func1一次,返回值就加1 而怎么运行func2返回值都是1,因为c每次都重新分配然后初始化为0 该程序的执行结果是 1 2 1 1

静态变量static是怎么回事,它能保存变量吗(举个例子)

static是分配在静态区中,初始值为0,在程序运行的时间内不会消失,同时保持上一次使用后的值不变

虽然变量始终存在,但其它程序还是不能引用它。

如下示例:

fun (int x)

{

static int a=3;

a+=x;

return a;

}

main()

{

int k=2,m=1,n;

n=fun(k);

printf("first : n=%d ",n);

n=fun(m);

printf("second :n=%d ",n);

}

static变量存储在哪里

该变量在全局数据区分配内存; 未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化); 静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;  静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。

对于一个完整的程序,在内存中的 代码区,全局数据区,堆区,栈区 一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。

自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。

全局数据区的数据并不会因为函数的退出而释放空间。

细心的读者可能会发现,Example 1中的代码中将 static int n; //定义静态全局变量 改为 int n; //定义全局变量 程序照样正常运行。

的确,定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处: 静态全局变量不能被其它文件所用; 其它文件中可以定义相同名字的变量,不会发生冲突;

LOCVPS:VPS主机全场8折,德国/荷兰/美国KVM终身7折

LOCVPS发来了针对元旦新年的促销活动,除了全场VPS主机8折优惠外,针对德国/荷兰KVM #1/美国KVM#2 VPS提供终身7折优惠码(限量50名,先到先得)。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐优先选择KVM),均选择直连或者优化线路,国内延迟低,适合建站或远程办公使...

新加坡云服务器 1核2Gg 46元/月 香港云服务器 1核2G 74元/月 LightNode

LightNode是一家成立于2002年,总部位于香港的VPS服务商。提供基于KVM虚拟化技术.支持CentOS、Ubuntu或者Windows等操作系统。公司名:厦门靠谱云股份有限公司官方网站:https://www.lightnode.com拥有高质量香港CN2 GIA与东南亚节点(河内、曼谷、迪拜等)。最低月付7.71美金,按时付费,可随时取消。灵活满足开发建站、游戏应用、外贸电商等需求。首...

Krypt($120/年),2vCPU/2GB/60GB SSD/3TB

Krypt这两天发布了ION平台9月份优惠信息,提供一款特选套餐年付120美元(原价$162/年),开设在洛杉矶或者圣何塞机房,支持Windows或者Linux操作系统。ion.kryptcloud.com是Krypt机房上线的云主机平台,主要提供基于KVM架构云主机产品,相对于KT主站云服务器要便宜很多,产品可选洛杉矶、圣何塞或者新加坡等地机房。洛杉矶机房CPU:2 cores内存:2GB硬盘:...

static变量为你推荐
mdm乳化剂MDM起什么作用firstnamefirst name 是什么意思httpsessionhttpsession中的SessionID是如何生成的?linux修改文件名Linux中,怎样修改文件名?rbf神经网络rbf神经网络的输入参数个数有上限么settimermfc里SetTimer和Sleep有什么区别李昊天铠甲勇士刑天中人物资料索引超出了数组界限求助大神什么叫索引超出了数组界限php论坛怎样快速在个人电脑上建立一个自己的PHP论坛服务器?radius认证电信或网通的RADIUS认证都记录些什么?谁能说说ISP的宽带帐号检查流程
备案未注册域名 万网域名证书查询 息壤主机 国外php主机 webhostingpad BWH 国外bt 京东云擎 云鼎网络 好看qq空间 申请个人网站 qq云端 美国网站服务器 上海联通宽带测速 卡巴斯基免费试用版 申请免费空间和域名 国外视频网站有哪些 空间租赁 免费的asp空间 accountsuspended 更多