有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,这时就应该指定局部变量为静态局部变量,用关键字static进行声明。
通过用static类型声明后的变量,其变量的内存空间位于内存的全局静态区,仅会初始化一次,这是一个非常重要的特性,请大家通过如下的程序理解:
| 1234567891011121314151617 | #include<stdio.h>statica=5;intfun(){a=a*2;printf("a=%d\n",a);return0;}intmain(){inti=0;for(i=0;i<10;i++){fun();}return0;} |
请大家先自行理解,然后上机运行如上代码,可以观察a的值输出如下:
| 12345678910 | a=10a=20a=40a=80a=160a=320a=640a=1280a=2560a=5120 |
这个结果的原因在于,每次a的值是接着上一次函数调用的值继续运算的,并非每次都初始化从5开始计算,这就是static的特性,请大家好好理解。
分享来源:dotcppC语言网
免责声明:本站内容(文字信息+图片素材)来源于互联网公开数据整理或转载,仅用于学习参考,如有侵权问题,请及时联系本站删除,我们将在5个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)

QQ客服