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(); //得到iSum的立方
return 0;
}

然后运行结果是
9
27
Press any key to continue

在第二次调用Caculate()函数的时候,不是又重新赋值变量iSum=3了吗,为什么第二次调用的时候,iSum=3没有作用呢?

static关键字在C语言中用于声明一个静态的局部变量。
作用:
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。

用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-16

静态数据区的变量只能初始化一次,所以

static int iSum=3;

这条语句只会在第一次调用函数的时候生效,第二次会被忽略。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网