C语言里面静态变量static是什么作用啊?
初学者。。题目是这样的#include<stdio.h>voidCaculate(){staticintiSum=3;intiTemp;iTemp=iSum;//iSum...
初学者。。
题目是这样的
#include<stdio.h>
void Caculate()
{
static int iSum=3;
int iTemp;
iTemp=iSum; //iSum是静态变量
iSum=iTemp*3;
printf("%d\n",iSum);
}
int main()
{
Caculate(); //得到iSum的平方
Caculate(); //得到iSum的立方
return 0;
}
然后运行结果是
9
27
Press any key to continue
在第二次调用Caculate()函数的时候,不是又重新赋值变量iSum=3了吗,为什么第二次调用的时候,iSum=3没有作用呢? 展开
题目是这样的
#include<stdio.h>
void Caculate()
{
static int iSum=3;
int iTemp;
iTemp=iSum; //iSum是静态变量
iSum=iTemp*3;
printf("%d\n",iSum);
}
int main()
{
Caculate(); //得到iSum的平方
Caculate(); //得到iSum的立方
return 0;
}
然后运行结果是
9
27
Press any key to continue
在第二次调用Caculate()函数的时候,不是又重新赋值变量iSum=3了吗,为什么第二次调用的时候,iSum=3没有作用呢? 展开
2个回答
展开全部
static关键字在C语言中用于声明一个静态的局部变量。
作用:
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。
作用:
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
2019-07-16
展开全部
静态数据区的变量只能初始化一次,所以
static int iSum=3;
这条语句只会在第一次调用函数的时候生效,第二次会被忽略。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询