静态变量动态变量全局变量局部变量

 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      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值