有时候,当我孤独地坐着等待生命大门关闭时,一种与世隔绝的感觉就会像冷雾一样笼罩着我。远处有光明、音乐和友谊,但我进不去,命运之神无情地挡住了大门。我真想义正词严地提出抗议,因为我的心仍然充满了热情。但是那些酸楚而无益的话语流溢在唇边,欲言又止,犹如泪水往肚里流,沉默浸透了我的灵魂。然后,希望之神微笑着走来对我轻轻耳语说:“忘我就是快乐。”因而我要把别人眼睛所看见的光明当作我的太阳,别人耳朵所听见的音乐当作我的乐曲,别人嘴角的微笑当作我的快乐。

auto 和static 的区别

上一篇 / 下一篇  2009-04-27 13:44:48

看下边三个程序及其输出结果:auto变量省略关键字
程序一:
#include <iostream.h>
void sum();
main()
{
 int i=0;
 sum();
 cout<<"in main i="<<i<<"\n";
 sum();
 cout<<"in main i="<<i<<"\n";
}
void sum()
{
 int i=0;
 i=i+1;
 cout<<"in sum i="<<i<<"\n";
}
程序二:
#include <iostream.h>
void sum();
main()
{
 int i;
 sum();
 cout<<"in main i="<<i<<"\n";
 sum();
 cout<<"in main i="<<i<<"\n";
}
void sum()
{
 int i;
 i=i+1;
 cout<<"in sum i="<<i<<"\n";
}
程序三:
#include <iostream.h>
void sum();
main()
{
 static int i;
 sum();
 cout<<"in main i="<<i<<"\n";
 sum();
 cout<<"in main i="<<i<<"\n";
}
void sum()
{
 int i=0;
 i=i+1;
 cout<<"in sum i="<<i<<"\n";
}
 
输出结果:
程序一:
in sum i=1
in main i=0
in sum i=1
in main i=0
第二次sum中的i值为1,因为auto变量不保存历史值。
程序二:
in sum i=10985674
in main i=11764532
in sum i=12387659
in main i=11764532
输出无关值,因为auto变量不做初始化。
程序三:
in sum i=1
in main i=0
in sum i=2
in main i=0
第二次sum值i为2,因为static变量保留历史值。
 
由此可知其区别为:
1、静态变量在没有明确的初始值时会自动初始化为0或者空(NULL)
2、静态变量在离开作用域后他的值会保持不变。

TAG:

 

评分:0

我来说两句

Open Toolbar