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

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

3C云1核1G 9.9元 4核4G 16元 美国Cera 2核4G 24元

3C云互联怎么样?3C云互联专注免备案香港美国日本韩国台湾云主机vps服务器,美国高防CN2GIA,香港CN2GIA,顶级线路优化,高端品质售后无忧!致力于对互联网云计算科技深入研发与运营的极客共同搭建而成,将云计算与网络核心技术转化为最稳定,安全,高速以及极具性价比的云服务器等产品提供给用户!专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松...

95IDC香港特价物理机服务器月付299元起,5个ip/BGP+CN2线路;美国CERA服务器仅499元/月起

95idc是一家香港公司,主要产品香港GIA线路沙田CN2线路独服,美国CERA高防服务器,日本CN2直连服务器,即日起,购买香港/日本云主机,在今年3月份,95IDC推出来一款香港物理机/香港多ip站群服务器,BGP+CN2线路终身7折,月付350元起。不过今天,推荐一个价格更美的香港物理机,5个ip,BGP+CN2线路,月付299元起,有需要的,可以关注一下。95idc优惠码:优惠码:596J...

牦牛云(3.5USD/月 )阿里云国际版云服务器 1核1G40G

收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...

static变量为你推荐
ISDNISDN是什么网络?0x800700050x80070005是怎么回事?md5值文件名后缀为MD5是什么文件。foxmail邮箱注册如何注册FOXMAIL邮箱的帐号啊?oracle索引如何在ORACLE数据库的字段上建立索引mindmanager破解版谁有MindManager破解版的vipjr大家觉得vipjr少儿英语怎么样?靠谱不spawning在c语言编译时出现Error spawning cl.exe,是怎么回事?qq业务中心QQ业务办理数据分析报告范文800字统计分析报告
虚拟主机提供商 vps虚拟服务器 香港bgp机房 服务器评测 国外服务器 2014年感恩节 美国主机论坛 56折 老左博客 贵州电信宽带测速 国外php空间 坐公交投2700元 怎么测试下载速度 asp免费空间申请 paypal注册教程 linux使用教程 ebay注册 电信网络测速器 注册阿里云邮箱 xuni 更多