1 #include <stdio.h>
2
3 void test()
4 {
5 static int i = 5;
6 printf("%d\n",i);
7 }
8 int caculate(int a)
9 {
10 int result = 0;
11
12 if (a>0)
13 {
14
15 for (int j = a; j>0; j--)
16 {
17 result = j;
18 result = j*result;
19 printf("j = %d,result=%d\n",j,result);
20 }
21 }
22 return result;
23
24 }
25 int staticPlus()
26 {
27
28 static int i = 0;
29 int result = 0;
30 result = i++;
31 printf("有 static 的结果为%d\n",result);
32 return 0;
33 }
34 int plus()
35 {
36
37 int i = 0;
38 int result = 0;
39 result = i++;
40 printf("无 static 的结果为%d\n",result);
41 // printf("%d",j);
42 return 0;
43 }
44 static int p = 5;
45 int q = 6;
46 int main(int argc, const char * argv[]) {
47
48 // test();
49 // caculate(5);
50 // static int j = 5;
51 int x = 7;
52 printf("%d,内存地址为:%p\n",p,&p);
53 printf("%d,内存地址为:%p\n",q,&q);
54 printf("%d,内存地址为:%p\n",x,&x);
55 /**
56 *
57 5,内存地址为:0x100001020 (此地址为栈区)
58 6,内存地址为:0x10000101c (此地址为栈区)
59 7,内存地址为:0x7fff5fbff7ec (此地址为堆区)
60 */
61
62 staticPlus();
63 staticPlus();
64 plus();
65 plus();
66 /**
67 *
68 有 static 的结果为0
69 有 static 的结果为1
70 无 static 的结果为0
71 无 static 的结果为0
72 */
73 return 0;
74 }