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; //定义全局变量 程序照样正常运行。

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

NameCheap 2021年新年首次活动 域名 域名邮局 SSL证书等

NameCheap商家如今发布促销活动也是有不小套路的,比如会在提前一周+的时间告诉你他们未来的活,比如这次2021年的首次活动就有在一周之前看到,但是这不等到他们中午一点左右的时候才有正式开始,而且我确实是有需要注册域名,等着看看是否有真的折扣,但是实际上.COM域名力度也就一般需要51元左右,其他地方也就55元左右。当然,这次新年的首次活动不管如何肯定是比平时便宜一点点的。有新注册域名、企业域...

零途云:香港站群云服务器16IP220元/月,云服务器低至39元/月

零途云(Lingtuyun.com)新上了香港站群云服务器 – CN2精品线路,香港多ip站群云服务器16IP/5M带宽,4H4G仅220元/月,还有美国200g高防云服务器低至39元/月起。零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新...

SunthyCloud阿里云国际版分销商注册教程,即可PayPal信用卡分销商服务器

阿里云国际版注册认证教程-免绑卡-免实名买服务器安全、便宜、可靠、良心,支持人民币充值,提供代理折扣简介SunthyCloud成立于2015年,是阿里云国际版正规战略级渠道商,也是阿里云国际版最大的分销商,专业为全球企业客户提供阿里云国际版开户注册、认证、充值等服务,通过SunthyCloud开通阿里云国际版只需要一个邮箱,不需要PayPal信用卡就可以帮你开通、充值、新购、续费阿里云国际版,服务...

static变量为你推荐
开票系统国税承认的开票系统有哪些洗牌算法关于洗牌算法,请用JAVA编写,定义一个数组,储存1-52以内的数,打乱顺序输出!查字网衾字怎么读音是什么丁奇海贼王里“D”的意思是什么?smartupload为什么使用smartupload执行上传保存操作时用这句smart.save("upload")失败用smart.save("/upload")成功清除电脑垃圾怎么清除电脑的垃圾啊?pci数据捕获和信号处理控制器大侠们,PCI数据捕获和信号处理控制器不能正常工作了要怎么解决啊,是不是要安装主板驱动啊?优众网一淘网是淘宝客吗?有什么区别吗easeljs如何使用createjs来编写html5游戏银联商务招聘急问银联商务的客服待遇如何啊?
汉邦高科域名注册 cn域名备案 hostgator godaddy主机 香港机房 好看的桌面背景大图 debian6 搜狗12306抢票助手 腾讯云分析 速度云 南通服务器 免费申请个人网站 美国免费空间 多线空间 韩国代理ip 摩尔庄园注册 云销售系统 香港ip ncp 2016黑色星期五 更多