静态变量动态变量全局变量局部变量
1 #include<iostream.h> 2 int i;//定义的全局变量 3 void change() 4 { 5 //int i=0;//在此处定义了i,屏蔽了全局变量i,如果此处不定义;结果又是另外一种情况的; 6 static j=0; 7 int k=0; 8 cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl; 9 i+=1; 10 j+=2; 11 k+=4; 12 cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl; 13 } 14 int main() 15 { 16 int j; 17 static k; 18 cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl;//i=0 j=-858993469 k=0;//全局变量i没有赋值时默认为0,j局部变量没有赋值为随机值,k不为全局变量但是是静态变量,初始值也是0; 19 i+=20;change(); 20 //第一次,输出i=0 j=0 k=0;全是默认的数值;经过三个赋值后i=1 j=2 k=4;//注意了,i被屏蔽了哈哈; 21 cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl; 22 //i=20 j=-858993469 k=0 局部调用生命周期只为其大括号范围,执行完后会恢复原来的现场; 23 j+=20;change(); 24 //第二次,只有j的值保留第一次已有的;其他的都没有; 25 cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl; 26 k+=20;change(); 27 //第三次,j保留了第二次的值; 28 cout<<"i="<<i<<" j="<<j<<" k="<<k<<endl; 29 return 0; 30 } 31 /* 32 i=0 j=-858993460 k=0 33 i=0 j=0 k=0 34 i=1 j=2 k=4 35 i=20 j=-858993460 k=0 36 i=0 j=2 k=0 37 i=1 j=4 k=4 38 i=20 j=-858993440 k=0 39 i=0 j=4 k=0 40 i=1 j=6 k=4 41 i=20 j=-858993440 k=20 42 Press any key to continue 43 */ 44 /*i=0 j=-858993460 k=0 45 i=20 j=0 k=0 46 i=21 j=2 k=4 47 i=21 j=-858993460 k=0 48 i=21 j=2 k=0 49 i=22 j=4 k=4 50 i=22 j=-858993440 k=0 51 i=22 j=4 k=0 52 i=23 j=6 k=4 53 i=23 j=-858993440 k=20 54 Press any key to continue 55 */ 56
posted on 2012-12-17 17:09 LinuxPanda 阅读(801) 评论(0) 编辑 收藏 举报