静态变量问题

 

为什么下面的程序测试时输出的temp值是348800,348810,348820,.....似乎静态变量没有初始化,求解释!

int tempFun()
{
//----
static int temp=10;
temp=temp+10;
//----
return(temp);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+

int start()
{
int temp=tempFun();
Print("the temp =",temp);

return(temp);
}

 

静态变量永远只是在第一次运行时候被初始化.建议你看看C语言方面的书.推荐清华大学出版社谭老师的有关C语言书籍,或者直接参考电子工业出版社的相关书籍

原因: