中易网

static变量的理解:在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变,怎么理解

答案:4  悬赏:50  
解决时间 2021-02-10 22:33
static变量的理解:在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变,怎么理解
最佳答案
在你代码的基础上加上这么一句
#include
using namespace std;
int f(int);
int main()
{
int ret;
ret = f(3);
cout<<"main: ret = "< ret = f(1);
cout<<"main: ret = "< return 0;
}
int f(int a)
{
static int b = 2;
cout<<"f: b = "< b = b+a;
cout<<"f: b = "< return b;
}最后可以看到b只是赋初值一次,再次调用函数的时候,b还是上一次运行函数之后的值。调用过程中维持其值不变,指的是,函数结束的时候,静态变量不会消亡,还是上一次执行函数得到的值。普通变量在函数结束的时候就消亡了
全部回答
静态变量和局部变量的区别在于: 你下次调用这个函数时,它的初始值。 当你下次调用 f函数时, b的初始值将是 5
方法之中的变量只是局部变量,并不能被方法之外所识别,所以并不能使用public,static,private,protected...之内的修饰符。 这是基本规则。
其实很简单,static 声明的变量就是个全局变量,因为这些变量的存储空间在全局数据区 在函数中申明static只是说明语法上这个变量的访问域在函数内 当然你可以使用一个指针把这个变量从函数内取出来用 比如 int * foo_static_var_test(void) { static int a = 0; std::cout << a << std::endl; return &a; } int *p = foo_static_var_test(); //输出为0 *p = 100; foo_static_var_test(); //输出为 100
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦见海风大海浪大海水都淹没都山上
二姐东北特色烧烤海鲜小炒怎么去啊,有知道地
做商场的收银员会有什么发展前途吗?
联想启天M4400主板BIOS的写保护如何去掉?(主
太阳能热水器打满水后排水口不出水顶部出气口
怡诚·家园我想知道这个在什么地方
想要个女儿,但一直怀不上,可以去寺庙烧香请
半洋礁在什么地方啊,我要过去处理事情
金龙湾大酒店我想知道这个在什么地方
苹果手机更新系统要输入一个4位密码
夏普9020c软件有没有查本机号码的
有氢气生成的放热反应有哪些??
沟通中为什么要成为一个好的听众
求橘色奇迹电影版自行车那段的插曲!!!
AMD athlon(速龙)IIX4630四核,为什么鲁大师
推荐资讯
如果我想见的人近在咫尺却不来看我为什么?
坪辽这个地址在什么地方,我要处理点事
电脑显示器尺寸推荐
虾蟹蝗虫都属于什么动物
钻戒可以改大小吗
阿柳寨地址在哪,我要去那里办事
石门涧,东林寺归庐山市吗
星谷露物语steam和腾讯有区别吗
联想一体机玩全屏游戏为什么不全屏
进口的微波消解仪哪个品牌性价比比较高?
阴阳师阴界之门开了还会有麒麟吗
在百度贴吧建明星吧、汪东城吧等,要向百度交
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?