野生路由器:C语言里面静态变量static是什么作用啊?
初学者。。 题目是这样的 #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(); //得... 初学者。。题目是这样的
#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没有作用呢?
static关键字在C语言中用于声明一个静态的局部变量。最后一次编辑时间 推荐于2018-03-02 10:38:40
作用:
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。